@grafana/openapi-to-k6 0.2.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/constants.js +7 -3
- package/dist/generator/k6Client.js +5 -55
- package/dist/generator/k6ScriptBuilder.js +256 -0
- package/examples/basic_schema/single/k6-script.sample.ts +3 -2
- package/examples/basic_schema/single/simpleAPI.ts +1 -1
- package/examples/basic_schema/split/k6-script.sample.ts +3 -2
- package/examples/basic_schema/split/simpleAPI.schemas.ts +1 -1
- package/examples/basic_schema/split/simpleAPI.ts +1 -1
- package/examples/basic_schema/tags/default.ts +1 -1
- package/examples/basic_schema/tags/k6-script.sample.ts +4 -3
- package/examples/basic_schema/tags/simpleAPI.schemas.ts +1 -1
- package/examples/form_data_schema/schema.json +6 -3
- package/examples/form_data_schema/single/formDataAPI.ts +1 -1
- package/examples/form_data_schema/single/k6-script.sample.ts +10 -2
- package/examples/form_data_schema/split/formDataAPI.schemas.ts +1 -1
- package/examples/form_data_schema/split/formDataAPI.ts +1 -1
- package/examples/form_data_schema/split/k6-script.sample.ts +10 -2
- package/examples/form_data_schema/tags/default.ts +1 -1
- package/examples/form_data_schema/tags/formDataAPI.schemas.ts +1 -1
- package/examples/form_data_schema/tags/k6-script.sample.ts +11 -3
- package/examples/form_url_encoded_data_schema/schema.json +6 -3
- package/examples/form_url_encoded_data_schema/single/formURLEncodedAPI.ts +1 -1
- package/examples/form_url_encoded_data_schema/single/k6-script.sample.ts +11 -2
- package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.schemas.ts +1 -1
- package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.ts +1 -1
- package/examples/form_url_encoded_data_schema/split/k6-script.sample.ts +11 -2
- package/examples/form_url_encoded_data_schema/tags/default.ts +1 -1
- package/examples/form_url_encoded_data_schema/tags/formURLEncodedAPI.schemas.ts +1 -1
- package/examples/form_url_encoded_data_schema/tags/k6-script.sample.ts +12 -3
- package/examples/form_url_encoded_data_with_query_params_schema/schema.json +8 -4
- package/examples/form_url_encoded_data_with_query_params_schema/single/formURLEncodedAPIWithQueryParameters.ts +1 -1
- package/examples/form_url_encoded_data_with_query_params_schema/single/k6-script.sample.ts +19 -6
- package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.schemas.ts +1 -1
- package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.ts +1 -1
- package/examples/form_url_encoded_data_with_query_params_schema/split/k6-script.sample.ts +19 -6
- package/examples/form_url_encoded_data_with_query_params_schema/tags/default.ts +1 -1
- package/examples/form_url_encoded_data_with_query_params_schema/tags/formURLEncodedAPIWithQueryParameters.schemas.ts +1 -1
- package/examples/form_url_encoded_data_with_query_params_schema/tags/k6-script.sample.ts +14 -3
- package/examples/get_request_with_path_parameters_schema/schema.json +2 -1
- package/examples/get_request_with_path_parameters_schema/single/k6-script.sample.ts +6 -2
- package/examples/get_request_with_path_parameters_schema/single/simpleAPI.ts +1 -1
- package/examples/get_request_with_path_parameters_schema/split/k6-script.sample.ts +6 -2
- package/examples/get_request_with_path_parameters_schema/split/simpleAPI.schemas.ts +1 -1
- package/examples/get_request_with_path_parameters_schema/split/simpleAPI.ts +1 -1
- package/examples/get_request_with_path_parameters_schema/tags/default.ts +1 -1
- package/examples/get_request_with_path_parameters_schema/tags/k6-script.sample.ts +7 -3
- package/examples/get_request_with_path_parameters_schema/tags/simpleAPI.schemas.ts +1 -1
- package/examples/headers_schema/schema.json +2 -1
- package/examples/headers_schema/single/headerDemoAPI.ts +1 -1
- package/examples/headers_schema/single/k6-script.sample.ts +15 -4
- package/examples/headers_schema/split/headerDemoAPI.schemas.ts +1 -1
- package/examples/headers_schema/split/headerDemoAPI.ts +1 -1
- package/examples/headers_schema/split/k6-script.sample.ts +15 -4
- package/examples/headers_schema/tags/default.ts +1 -1
- package/examples/headers_schema/tags/headerDemoAPI.schemas.ts +1 -1
- package/examples/headers_schema/tags/k6-script.sample.ts +16 -5
- package/examples/no_title_schema/single/k6-script.sample.ts +3 -2
- package/examples/no_title_schema/single/k6Client.ts +1 -1
- package/examples/no_title_schema/split/k6-script.sample.ts +3 -2
- package/examples/no_title_schema/split/k6Client.schemas.ts +1 -1
- package/examples/no_title_schema/split/k6Client.ts +1 -1
- package/examples/no_title_schema/tags/default.ts +1 -1
- package/examples/no_title_schema/tags/k6-script.sample.ts +4 -3
- package/examples/no_title_schema/tags/k6Client.schemas.ts +1 -1
- package/examples/post_request_with_query_params/schema.json +14 -7
- package/examples/post_request_with_query_params/single/exampleAPI.ts +1 -1
- package/examples/post_request_with_query_params/single/k6-script.sample.ts +11 -2
- package/examples/post_request_with_query_params/split/exampleAPI.schemas.ts +1 -1
- package/examples/post_request_with_query_params/split/exampleAPI.ts +1 -1
- package/examples/post_request_with_query_params/split/k6-script.sample.ts +11 -2
- package/examples/post_request_with_query_params/tags/default.ts +1 -1
- package/examples/post_request_with_query_params/tags/exampleAPI.schemas.ts +1 -1
- package/examples/post_request_with_query_params/tags/k6-script.sample.ts +12 -3
- package/examples/query_params_schema/schema.json +20 -10
- package/examples/query_params_schema/single/exampleAPI.ts +1 -1
- package/examples/query_params_schema/single/k6-script.sample.ts +8 -2
- package/examples/query_params_schema/split/exampleAPI.schemas.ts +1 -1
- package/examples/query_params_schema/split/exampleAPI.ts +1 -1
- package/examples/query_params_schema/split/k6-script.sample.ts +8 -2
- package/examples/query_params_schema/tags/default.ts +1 -1
- package/examples/query_params_schema/tags/exampleAPI.schemas.ts +1 -1
- package/examples/query_params_schema/tags/k6-script.sample.ts +9 -3
- package/examples/simple_post_request_schema/schema.json +30 -15
- package/examples/simple_post_request_schema/single/exampleAPI.ts +1 -1
- package/examples/simple_post_request_schema/single/k6-script.sample.ts +16 -2
- package/examples/simple_post_request_schema/split/exampleAPI.schemas.ts +1 -1
- package/examples/simple_post_request_schema/split/exampleAPI.ts +1 -1
- package/examples/simple_post_request_schema/split/k6-script.sample.ts +16 -2
- package/examples/simple_post_request_schema/tags/default.ts +1 -1
- package/examples/simple_post_request_schema/tags/exampleAPI.schemas.ts +1 -1
- package/examples/simple_post_request_schema/tags/k6-script.sample.ts +17 -3
- package/package.json +3 -1
- package/src/constants.ts +7 -3
- package/src/generator/k6Client.ts +3 -72
- package/src/generator/k6ScriptBuilder.ts +328 -0
- package/tests/e2e/schema.json +135 -18
- package/tests/functional-tests/helper.ts +16 -0
- package/tests/functional-tests/test-generator/generator.test.ts +154 -0
- package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_using_ref_models.json +394 -0
- package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_with_examples.json +416 -0
- package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_with_no_variables.json +32 -0
- package/tests/functional-tests/test-sample-k6-scripts/sampleK6Scripts.test.ts +248 -0
- package/tests/functional-tests/test-tags-filtering/tagsFiltering.test.ts +166 -0
- package/tests/functional-tests/generator.test.ts +0 -319
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/basic_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_data_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_url_encoded_data_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_url_encoded_data_with_query_params_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/get_request_with_path_parameters_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/headers_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/no_title_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/post_request_with_query_params.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/query_params_schema.json +0 -0
- /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/simple_post_request_schema.json +0 -0
- /package/tests/functional-tests/{fixtures → test-tags-filtering/fixtures}/tags_filtering.json +0 -0
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"in": "query",
|
|
18
18
|
"required": true,
|
|
19
19
|
"schema": {
|
|
20
|
-
"type": "string"
|
|
20
|
+
"type": "string",
|
|
21
|
+
"example": "12345"
|
|
21
22
|
},
|
|
22
23
|
"description": "A string query parameter for user ID"
|
|
23
24
|
},
|
|
@@ -26,7 +27,8 @@
|
|
|
26
27
|
"in": "query",
|
|
27
28
|
"required": false,
|
|
28
29
|
"schema": {
|
|
29
|
-
"type": "boolean"
|
|
30
|
+
"type": "boolean",
|
|
31
|
+
"example": true
|
|
30
32
|
},
|
|
31
33
|
"description": "A boolean query parameter"
|
|
32
34
|
}
|
|
@@ -40,7 +42,8 @@
|
|
|
40
42
|
"properties": {
|
|
41
43
|
"data": {
|
|
42
44
|
"type": "string",
|
|
43
|
-
"description": "A string field representing data"
|
|
45
|
+
"description": "A string field representing data",
|
|
46
|
+
"example": "data"
|
|
44
47
|
}
|
|
45
48
|
},
|
|
46
49
|
"required": [
|
|
@@ -60,19 +63,23 @@
|
|
|
60
63
|
"properties": {
|
|
61
64
|
"userId": {
|
|
62
65
|
"type": "string",
|
|
63
|
-
"description": "The user ID from the query parameter"
|
|
66
|
+
"description": "The user ID from the query parameter",
|
|
67
|
+
"example": "12345"
|
|
64
68
|
},
|
|
65
69
|
"isActive": {
|
|
66
70
|
"type": "boolean",
|
|
67
|
-
"description": "The active status from the query parameter"
|
|
71
|
+
"description": "The active status from the query parameter",
|
|
72
|
+
"example": true
|
|
68
73
|
},
|
|
69
74
|
"data": {
|
|
70
75
|
"type": "string",
|
|
71
|
-
"description": "The data from the body"
|
|
76
|
+
"description": "The data from the body",
|
|
77
|
+
"example": "data"
|
|
72
78
|
},
|
|
73
79
|
"status": {
|
|
74
80
|
"type": "string",
|
|
75
|
-
"description": "Response status"
|
|
81
|
+
"description": "Response status",
|
|
82
|
+
"example": "success"
|
|
76
83
|
}
|
|
77
84
|
}
|
|
78
85
|
}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody, params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
data: 'data',
|
|
14
|
+
}
|
|
15
|
+
params = {
|
|
16
|
+
userId: '12345',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const createExampleDataResponseData = exampleAPIClient.createExampleData(
|
|
11
20
|
createExampleDataBody,
|
|
12
21
|
params
|
|
13
22
|
)
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody, params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
data: 'data',
|
|
14
|
+
}
|
|
15
|
+
params = {
|
|
16
|
+
userId: '12345',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const createExampleDataResponseData = exampleAPIClient.createExampleData(
|
|
11
20
|
createExampleDataBody,
|
|
12
21
|
params
|
|
13
22
|
)
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DefaultClient } from './default.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const defaultClient = new DefaultClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody, params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
data: 'data',
|
|
14
|
+
}
|
|
15
|
+
params = {
|
|
16
|
+
userId: '12345',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const createExampleDataResponseData = defaultClient.createExampleData(
|
|
11
20
|
createExampleDataBody,
|
|
12
21
|
params
|
|
13
22
|
)
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"in": "query",
|
|
18
18
|
"required": true,
|
|
19
19
|
"schema": {
|
|
20
|
-
"type": "string"
|
|
20
|
+
"type": "string",
|
|
21
|
+
"example": "John Doe"
|
|
21
22
|
},
|
|
22
23
|
"description": "A string parameter"
|
|
23
24
|
},
|
|
@@ -27,7 +28,8 @@
|
|
|
27
28
|
"required": false,
|
|
28
29
|
"schema": {
|
|
29
30
|
"type": "integer",
|
|
30
|
-
"format": "int32"
|
|
31
|
+
"format": "int32",
|
|
32
|
+
"example": 25
|
|
31
33
|
},
|
|
32
34
|
"description": "An integer parameter"
|
|
33
35
|
},
|
|
@@ -36,7 +38,8 @@
|
|
|
36
38
|
"in": "query",
|
|
37
39
|
"required": false,
|
|
38
40
|
"schema": {
|
|
39
|
-
"type": "boolean"
|
|
41
|
+
"type": "boolean",
|
|
42
|
+
"example": true
|
|
40
43
|
},
|
|
41
44
|
"description": "A boolean parameter"
|
|
42
45
|
},
|
|
@@ -49,7 +52,8 @@
|
|
|
49
52
|
"schema": {
|
|
50
53
|
"type": "array",
|
|
51
54
|
"items": {
|
|
52
|
-
"type": "string"
|
|
55
|
+
"type": "string",
|
|
56
|
+
"example": "tag1"
|
|
53
57
|
}
|
|
54
58
|
},
|
|
55
59
|
"description": "An array of strings parameter"
|
|
@@ -60,7 +64,8 @@
|
|
|
60
64
|
"required": false,
|
|
61
65
|
"schema": {
|
|
62
66
|
"type": "string",
|
|
63
|
-
"format": "date"
|
|
67
|
+
"format": "date",
|
|
68
|
+
"example": "2024-01-01"
|
|
64
69
|
},
|
|
65
70
|
"description": "A date parameter in YYYY-MM-DD format"
|
|
66
71
|
}
|
|
@@ -74,24 +79,29 @@
|
|
|
74
79
|
"type": "object",
|
|
75
80
|
"properties": {
|
|
76
81
|
"name": {
|
|
77
|
-
"type": "string"
|
|
82
|
+
"type": "string",
|
|
83
|
+
"example": "John Doe"
|
|
78
84
|
},
|
|
79
85
|
"age": {
|
|
80
86
|
"type": "integer",
|
|
81
|
-
"format": "int32"
|
|
87
|
+
"format": "int32",
|
|
88
|
+
"example": 25
|
|
82
89
|
},
|
|
83
90
|
"isActive": {
|
|
84
|
-
"type": "boolean"
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"example": true
|
|
85
93
|
},
|
|
86
94
|
"tags": {
|
|
87
95
|
"type": "array",
|
|
88
96
|
"items": {
|
|
89
|
-
"type": "string"
|
|
97
|
+
"type": "string",
|
|
98
|
+
"example": "tag1"
|
|
90
99
|
}
|
|
91
100
|
},
|
|
92
101
|
"date": {
|
|
93
102
|
"type": "string",
|
|
94
|
-
"format": "date"
|
|
103
|
+
"format": "date",
|
|
104
|
+
"example": "2024-01-01"
|
|
95
105
|
}
|
|
96
106
|
}
|
|
97
107
|
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Get example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
params = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const getExampleDataResponseData = exampleAPIClient.getExampleData(params)
|
|
11
17
|
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Get example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
params = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const getExampleDataResponseData = exampleAPIClient.getExampleData(params)
|
|
11
17
|
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DefaultClient } from './default.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const defaultClient = new DefaultClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let params
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Get example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
params = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const getExampleDataResponseData = defaultClient.getExampleData(params)
|
|
11
17
|
}
|
|
@@ -20,39 +20,46 @@
|
|
|
20
20
|
"properties": {
|
|
21
21
|
"name": {
|
|
22
22
|
"type": "string",
|
|
23
|
-
"description": "A string parameter"
|
|
23
|
+
"description": "A string parameter",
|
|
24
|
+
"example": "John Doe"
|
|
24
25
|
},
|
|
25
26
|
"age": {
|
|
26
27
|
"type": "integer",
|
|
27
28
|
"format": "int32",
|
|
28
|
-
"description": "An integer parameter"
|
|
29
|
+
"description": "An integer parameter",
|
|
30
|
+
"example": 25
|
|
29
31
|
},
|
|
30
32
|
"isActive": {
|
|
31
33
|
"type": "boolean",
|
|
32
|
-
"description": "A boolean parameter"
|
|
34
|
+
"description": "A boolean parameter",
|
|
35
|
+
"example": true
|
|
33
36
|
},
|
|
34
37
|
"tags": {
|
|
35
38
|
"type": "array",
|
|
36
39
|
"items": {
|
|
37
40
|
"type": "string"
|
|
38
41
|
},
|
|
39
|
-
"description": "An array of strings"
|
|
42
|
+
"description": "An array of strings",
|
|
43
|
+
"example": ["tag1", "tag2"]
|
|
40
44
|
},
|
|
41
45
|
"date": {
|
|
42
46
|
"type": "string",
|
|
43
47
|
"format": "date",
|
|
44
|
-
"description": "A date parameter in YYYY-MM-DD format"
|
|
48
|
+
"description": "A date parameter in YYYY-MM-DD format",
|
|
49
|
+
"example": "2024-01-01"
|
|
45
50
|
},
|
|
46
51
|
"meta": {
|
|
47
52
|
"type": "object",
|
|
48
53
|
"properties": {
|
|
49
54
|
"createdBy": {
|
|
50
55
|
"type": "string",
|
|
51
|
-
"description": "A string parameter for the creator's name"
|
|
56
|
+
"description": "A string parameter for the creator's name",
|
|
57
|
+
"example": "John Doe"
|
|
52
58
|
},
|
|
53
59
|
"updatedBy": {
|
|
54
60
|
"type": "string",
|
|
55
|
-
"description": "A string parameter for the updater's name"
|
|
61
|
+
"description": "A string parameter for the updater's name",
|
|
62
|
+
"example": "Jane Doe"
|
|
56
63
|
}
|
|
57
64
|
},
|
|
58
65
|
"description": "An object parameter containing metadata"
|
|
@@ -77,36 +84,44 @@
|
|
|
77
84
|
"properties": {
|
|
78
85
|
"id": {
|
|
79
86
|
"type": "string",
|
|
80
|
-
"description": "The unique ID of the created resource"
|
|
87
|
+
"description": "The unique ID of the created resource",
|
|
88
|
+
"example": "12345"
|
|
81
89
|
},
|
|
82
90
|
"name": {
|
|
83
|
-
"type": "string"
|
|
91
|
+
"type": "string",
|
|
92
|
+
"example": "John Doe"
|
|
84
93
|
},
|
|
85
94
|
"age": {
|
|
86
95
|
"type": "integer",
|
|
87
|
-
"format": "int32"
|
|
96
|
+
"format": "int32",
|
|
97
|
+
"example": 25
|
|
88
98
|
},
|
|
89
99
|
"isActive": {
|
|
90
|
-
"type": "boolean"
|
|
100
|
+
"type": "boolean",
|
|
101
|
+
"example": true
|
|
91
102
|
},
|
|
92
103
|
"tags": {
|
|
93
104
|
"type": "array",
|
|
94
105
|
"items": {
|
|
95
|
-
"type": "string"
|
|
106
|
+
"type": "string",
|
|
107
|
+
"example": ["tag1", "tag2"]
|
|
96
108
|
}
|
|
97
109
|
},
|
|
98
110
|
"date": {
|
|
99
111
|
"type": "string",
|
|
100
|
-
"format": "date"
|
|
112
|
+
"format": "date",
|
|
113
|
+
"example": "2024-01-01"
|
|
101
114
|
},
|
|
102
115
|
"meta": {
|
|
103
116
|
"type": "object",
|
|
104
117
|
"properties": {
|
|
105
118
|
"createdBy": {
|
|
106
|
-
"type": "string"
|
|
119
|
+
"type": "string",
|
|
120
|
+
"example": "John Doe"
|
|
107
121
|
},
|
|
108
122
|
"updatedBy": {
|
|
109
|
-
"type": "string"
|
|
123
|
+
"type": "string",
|
|
124
|
+
"example": "Jane Doe"
|
|
110
125
|
}
|
|
111
126
|
}
|
|
112
127
|
}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
age: '25',
|
|
15
|
+
isActive: 'true',
|
|
16
|
+
tags: 'tag1,tag2',
|
|
17
|
+
date: '2024-01-01',
|
|
18
|
+
meta: {
|
|
19
|
+
createdBy: 'John Doe',
|
|
20
|
+
updatedBy: 'Jane Doe',
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const createExampleDataResponseData = exampleAPIClient.createExampleData(
|
|
11
25
|
createExampleDataBody
|
|
12
26
|
)
|
|
13
27
|
}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import { ExampleAPIClient } from './exampleAPI.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const exampleAPIClient = new ExampleAPIClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
age: '25',
|
|
15
|
+
isActive: 'true',
|
|
16
|
+
tags: 'tag1,tag2',
|
|
17
|
+
date: '2024-01-01',
|
|
18
|
+
meta: {
|
|
19
|
+
createdBy: 'John Doe',
|
|
20
|
+
updatedBy: 'Jane Doe',
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const createExampleDataResponseData = exampleAPIClient.createExampleData(
|
|
11
25
|
createExampleDataBody
|
|
12
26
|
)
|
|
13
27
|
}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DefaultClient } from './default.ts'
|
|
2
2
|
|
|
3
3
|
const baseUrl = '<BASE_URL>'
|
|
4
|
-
const
|
|
4
|
+
const defaultClient = new DefaultClient({ baseUrl })
|
|
5
5
|
|
|
6
6
|
export default function () {
|
|
7
|
+
let createExampleDataBody
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Create example data
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
createExampleDataBody = {
|
|
13
|
+
name: 'John Doe',
|
|
14
|
+
age: '25',
|
|
15
|
+
isActive: 'true',
|
|
16
|
+
tags: 'tag1,tag2',
|
|
17
|
+
date: '2024-01-01',
|
|
18
|
+
meta: {
|
|
19
|
+
createdBy: 'John Doe',
|
|
20
|
+
updatedBy: 'Jane Doe',
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const createExampleDataResponseData = defaultClient.createExampleData(
|
|
11
25
|
createExampleDataBody
|
|
12
26
|
)
|
|
13
27
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grafana/openapi-to-k6",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A CLI tool to generate helper modules for K6 from OpenAPI schema",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"build": "tsc",
|
|
11
11
|
"dev": "DISABLE_ANALYTICS=true ts-node src/cli.ts",
|
|
12
|
+
"dev:inspect": "DISABLE_ANALYTICS=true node --inspect-brk --require ts-node/register src/cli.ts",
|
|
12
13
|
"test": "vitest run --coverage",
|
|
13
14
|
"lint": "eslint --ext .ts,.tsx .",
|
|
14
15
|
"lint:fix": "eslint --ext .ts,.tsx . --fix",
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
"repository": "http://github.com/grafana/openapi-to-k6",
|
|
21
22
|
"license": "AGPL-3.0",
|
|
22
23
|
"dependencies": {
|
|
24
|
+
"@faker-js/faker": "^9.2.0",
|
|
23
25
|
"@types/k6": "^0.54.0",
|
|
24
26
|
"axios": "^1.7.7",
|
|
25
27
|
"chalk": "^4.1.2",
|