mirror of
https://github.com/foss42/apidash.git
synced 2025-12-05 20:40:02 +08:00
Add postman collection tests
This commit is contained in:
@@ -0,0 +1,366 @@
|
|||||||
|
var collectionApiDashJsonStr = r'''
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"_postman_id": "a31e8a59-aa12-48c5-96a3-133822d7247e",
|
||||||
|
"name": "API Dash",
|
||||||
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
||||||
|
"_exporter_id": "26763819"
|
||||||
|
},
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "GET Requests",
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "Simple GET",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Country Data",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/country/data?code=US",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"country",
|
||||||
|
"data"
|
||||||
|
],
|
||||||
|
"query": [
|
||||||
|
{
|
||||||
|
"key": "code",
|
||||||
|
"value": "US"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Humanize Rank",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/humanize/social?num=8700000&digits=3&system=SS&add_space=true&trailing_zeros=true",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"humanize",
|
||||||
|
"social"
|
||||||
|
],
|
||||||
|
"query": [
|
||||||
|
{
|
||||||
|
"key": "num",
|
||||||
|
"value": "8700000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "digits",
|
||||||
|
"value": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "system",
|
||||||
|
"value": "SS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "add_space",
|
||||||
|
"value": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "trailing_zeros",
|
||||||
|
"value": "true"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POST Requests",
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "Case Lower",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [],
|
||||||
|
"body": {
|
||||||
|
"mode": "raw",
|
||||||
|
"raw": "{\n\"text\": \"I LOVE Flutter\"\n}",
|
||||||
|
"options": {
|
||||||
|
"raw": {
|
||||||
|
"language": "json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/case/lower",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"case",
|
||||||
|
"lower"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Form Example",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [
|
||||||
|
{
|
||||||
|
"key": "User-Agent",
|
||||||
|
"value": "Test Agent",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"body": {
|
||||||
|
"mode": "formdata",
|
||||||
|
"formdata": [
|
||||||
|
{
|
||||||
|
"key": "text",
|
||||||
|
"value": "API",
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "sep",
|
||||||
|
"value": "|",
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "times",
|
||||||
|
"value": "3",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/io/form",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"io",
|
||||||
|
"form"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Form with File",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [],
|
||||||
|
"body": {
|
||||||
|
"mode": "formdata",
|
||||||
|
"formdata": [
|
||||||
|
{
|
||||||
|
"key": "token",
|
||||||
|
"value": "xyz",
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "imfile",
|
||||||
|
"type": "file",
|
||||||
|
"src": "/Users/ashitaprasad/Downloads/hire AI.jpeg"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/io/img",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"io",
|
||||||
|
"img"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
''';
|
||||||
|
|
||||||
|
var collectionApiDashJson = {
|
||||||
|
"info": {
|
||||||
|
"_postman_id": "a31e8a59-aa12-48c5-96a3-133822d7247e",
|
||||||
|
"name": "API Dash",
|
||||||
|
"schema":
|
||||||
|
"https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
||||||
|
"_exporter_id": "26763819"
|
||||||
|
},
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "GET Requests",
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "Simple GET",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Country Data",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/country/data?code=US",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"],
|
||||||
|
"path": ["country", "data"],
|
||||||
|
"query": [
|
||||||
|
{"key": "code", "value": "US"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Humanize Rank",
|
||||||
|
"request": {
|
||||||
|
"method": "GET",
|
||||||
|
"header": [],
|
||||||
|
"url": {
|
||||||
|
"raw":
|
||||||
|
"https://api.apidash.dev/humanize/social?num=8700000&digits=3&system=SS&add_space=true&trailing_zeros=true",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"],
|
||||||
|
"path": ["humanize", "social"],
|
||||||
|
"query": [
|
||||||
|
{"key": "num", "value": "8700000"},
|
||||||
|
{"key": "digits", "value": "3"},
|
||||||
|
{"key": "system", "value": "SS"},
|
||||||
|
{"key": "add_space", "value": "true"},
|
||||||
|
{"key": "trailing_zeros", "value": "true"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POST Requests",
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "Case Lower",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [],
|
||||||
|
"body": {
|
||||||
|
"mode": "raw",
|
||||||
|
"raw": "{\n\"text\": \"I LOVE Flutter\"\n}",
|
||||||
|
"options": {
|
||||||
|
"raw": {"language": "json"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/case/lower",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"],
|
||||||
|
"path": ["case", "lower"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Form Example",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [
|
||||||
|
{"key": "User-Agent", "value": "Test Agent", "type": "text"}
|
||||||
|
],
|
||||||
|
"body": {
|
||||||
|
"mode": "formdata",
|
||||||
|
"formdata": [
|
||||||
|
{"key": "text", "value": "API", "type": "text"},
|
||||||
|
{"key": "sep", "value": "|", "type": "text"},
|
||||||
|
{"key": "times", "value": "3", "type": "text"}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/io/form",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"],
|
||||||
|
"path": ["io", "form"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Form with File",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [],
|
||||||
|
"body": {
|
||||||
|
"mode": "formdata",
|
||||||
|
"formdata": [
|
||||||
|
{"key": "token", "value": "xyz", "type": "text"},
|
||||||
|
{
|
||||||
|
"key": "imfile",
|
||||||
|
"type": "file",
|
||||||
|
"src": "/Users/ashitaprasad/Downloads/hire AI.jpeg"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "https://api.apidash.dev/io/img",
|
||||||
|
"protocol": "https",
|
||||||
|
"host": ["api", "apidash", "dev"],
|
||||||
|
"path": ["io", "img"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"response": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
165
packages/postman/test/models/collection_apidash_model.dart
Normal file
165
packages/postman/test/models/collection_apidash_model.dart
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
import 'package:postman/models/models.dart';
|
||||||
|
|
||||||
|
var collectionApiDashModel = PostmanCollection(
|
||||||
|
info: Info(
|
||||||
|
postmanId: "a31e8a59-aa12-48c5-96a3-133822d7247e",
|
||||||
|
name: "API Dash",
|
||||||
|
schema:
|
||||||
|
"https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
||||||
|
exporterId: "26763819",
|
||||||
|
),
|
||||||
|
item: [
|
||||||
|
Item(
|
||||||
|
name: "GET Requests",
|
||||||
|
request: null,
|
||||||
|
response: null,
|
||||||
|
item: [
|
||||||
|
Item(
|
||||||
|
name: "Simple GET",
|
||||||
|
request: Request(
|
||||||
|
method: "GET",
|
||||||
|
header: [],
|
||||||
|
url: Url(
|
||||||
|
raw: "https://api.apidash.dev",
|
||||||
|
protocol: "https",
|
||||||
|
host: ["api", "apidash", "dev"],
|
||||||
|
path: null,
|
||||||
|
query: null,
|
||||||
|
)),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
Item(
|
||||||
|
name: "Country Data",
|
||||||
|
request: Request(
|
||||||
|
method: "GET",
|
||||||
|
header: [],
|
||||||
|
url: Url(
|
||||||
|
raw: "https://api.apidash.dev/country/data?code=US",
|
||||||
|
protocol: "https",
|
||||||
|
host: ["api", "apidash", "dev"],
|
||||||
|
path: ["country", "data"],
|
||||||
|
query: [Query(key: "code", value: "US")])),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
Item(
|
||||||
|
name: "Humanize Rank",
|
||||||
|
request: Request(
|
||||||
|
method: "GET",
|
||||||
|
header: [],
|
||||||
|
url: Url(
|
||||||
|
raw:
|
||||||
|
"https://api.apidash.dev/humanize/social?num=8700000&digits=3&system=SS&add_space=true&trailing_zeros=true",
|
||||||
|
protocol: "https",
|
||||||
|
host: [
|
||||||
|
"api",
|
||||||
|
"apidash",
|
||||||
|
"dev"
|
||||||
|
],
|
||||||
|
path: [
|
||||||
|
"humanize",
|
||||||
|
"social"
|
||||||
|
],
|
||||||
|
query: [
|
||||||
|
Query(key: "num", value: "8700000"),
|
||||||
|
Query(key: "digits", value: "3"),
|
||||||
|
Query(key: "system", value: "SS"),
|
||||||
|
Query(key: "add_space", value: "true"),
|
||||||
|
Query(key: "trailing_zeros", value: "true"),
|
||||||
|
])),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Item(
|
||||||
|
name: "POST Requests",
|
||||||
|
request: null,
|
||||||
|
response: null,
|
||||||
|
item: [
|
||||||
|
Item(
|
||||||
|
name: "Case Lower",
|
||||||
|
request: Request(
|
||||||
|
method: "POST",
|
||||||
|
header: [],
|
||||||
|
body: Body(
|
||||||
|
mode: "raw",
|
||||||
|
options: Options(raw: Raw(language: "json")),
|
||||||
|
raw: "{\n\"text\": \"I LOVE Flutter\"\n}",
|
||||||
|
formdata: null,
|
||||||
|
),
|
||||||
|
url: Url(
|
||||||
|
raw: "https://api.apidash.dev/case/lower",
|
||||||
|
protocol: "https",
|
||||||
|
host: ["api", "apidash", "dev"],
|
||||||
|
path: ["case", "lower"],
|
||||||
|
query: null,
|
||||||
|
)),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
Item(
|
||||||
|
name: "Form Example",
|
||||||
|
request: Request(
|
||||||
|
method: "POST",
|
||||||
|
header: [
|
||||||
|
Header(
|
||||||
|
key: "User-Agent",
|
||||||
|
value: "Test Agent",
|
||||||
|
type: "text",
|
||||||
|
disabled: null,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
body: Body(
|
||||||
|
mode: "formdata",
|
||||||
|
options: null,
|
||||||
|
raw: null,
|
||||||
|
formdata: [
|
||||||
|
Formdatum(key: "text", value: "API", type: "text"),
|
||||||
|
Formdatum(key: "sep", value: "|", type: "text"),
|
||||||
|
Formdatum(key: "times", value: "3", type: "text"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
url: Url(
|
||||||
|
raw: "https://api.apidash.dev/io/form",
|
||||||
|
protocol: "https",
|
||||||
|
host: ["api", "apidash", "dev"],
|
||||||
|
path: ["io", "form"],
|
||||||
|
query: null,
|
||||||
|
)),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
Item(
|
||||||
|
name: "Form with File",
|
||||||
|
request: Request(
|
||||||
|
method: "POST",
|
||||||
|
header: [],
|
||||||
|
body: Body(
|
||||||
|
mode: "formdata",
|
||||||
|
options: null,
|
||||||
|
raw: null,
|
||||||
|
formdata: [
|
||||||
|
Formdatum(key: "token", value: "xyz", type: "text"),
|
||||||
|
Formdatum(
|
||||||
|
key: "imfile",
|
||||||
|
value: null,
|
||||||
|
src: "/Users/ashitaprasad/Downloads/hire AI.jpeg",
|
||||||
|
type: "file"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
url: Url(
|
||||||
|
raw: "https://api.apidash.dev/io/img",
|
||||||
|
protocol: "https",
|
||||||
|
host: ["api", "apidash", "dev"],
|
||||||
|
path: ["io", "img"],
|
||||||
|
query: null,
|
||||||
|
)),
|
||||||
|
response: [],
|
||||||
|
item: null,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
@@ -1,16 +1,28 @@
|
|||||||
import 'package:postman/postman.dart';
|
import 'package:postman/postman.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
void main() {
|
import 'collection_examples/collection_apidash.dart';
|
||||||
group('A group of tests', () {
|
import 'models/collection_apidash_model.dart';
|
||||||
final awesome = Awesome();
|
|
||||||
|
|
||||||
setUp(() {
|
void main() {
|
||||||
// Additional setup goes here.
|
group('Postman tests', () {
|
||||||
|
test('API Dash Postman collection from Json String', () {
|
||||||
|
expect(postmanCollectionFromJsonStr(collectionApiDashJsonStr),
|
||||||
|
collectionApiDashModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('First Test', () {
|
test('API Dash Postman collection from Json', () {
|
||||||
expect(awesome.isAwesome, isTrue);
|
expect(PostmanCollection.fromJson(collectionApiDashJson),
|
||||||
|
collectionApiDashModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('API Dash Postman collection to Json String', () {
|
||||||
|
expect(postmanCollectionToJsonStr(collectionApiDashModel),
|
||||||
|
collectionApiDashJsonStr);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('API Dash Postman collection to Json', () {
|
||||||
|
expect(collectionApiDashModel.toJson(), collectionApiDashJson);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user