@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.
Files changed (116) hide show
  1. package/README.md +5 -1
  2. package/dist/constants.js +7 -3
  3. package/dist/generator/k6Client.js +5 -55
  4. package/dist/generator/k6ScriptBuilder.js +256 -0
  5. package/examples/basic_schema/single/k6-script.sample.ts +3 -2
  6. package/examples/basic_schema/single/simpleAPI.ts +1 -1
  7. package/examples/basic_schema/split/k6-script.sample.ts +3 -2
  8. package/examples/basic_schema/split/simpleAPI.schemas.ts +1 -1
  9. package/examples/basic_schema/split/simpleAPI.ts +1 -1
  10. package/examples/basic_schema/tags/default.ts +1 -1
  11. package/examples/basic_schema/tags/k6-script.sample.ts +4 -3
  12. package/examples/basic_schema/tags/simpleAPI.schemas.ts +1 -1
  13. package/examples/form_data_schema/schema.json +6 -3
  14. package/examples/form_data_schema/single/formDataAPI.ts +1 -1
  15. package/examples/form_data_schema/single/k6-script.sample.ts +10 -2
  16. package/examples/form_data_schema/split/formDataAPI.schemas.ts +1 -1
  17. package/examples/form_data_schema/split/formDataAPI.ts +1 -1
  18. package/examples/form_data_schema/split/k6-script.sample.ts +10 -2
  19. package/examples/form_data_schema/tags/default.ts +1 -1
  20. package/examples/form_data_schema/tags/formDataAPI.schemas.ts +1 -1
  21. package/examples/form_data_schema/tags/k6-script.sample.ts +11 -3
  22. package/examples/form_url_encoded_data_schema/schema.json +6 -3
  23. package/examples/form_url_encoded_data_schema/single/formURLEncodedAPI.ts +1 -1
  24. package/examples/form_url_encoded_data_schema/single/k6-script.sample.ts +11 -2
  25. package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.schemas.ts +1 -1
  26. package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.ts +1 -1
  27. package/examples/form_url_encoded_data_schema/split/k6-script.sample.ts +11 -2
  28. package/examples/form_url_encoded_data_schema/tags/default.ts +1 -1
  29. package/examples/form_url_encoded_data_schema/tags/formURLEncodedAPI.schemas.ts +1 -1
  30. package/examples/form_url_encoded_data_schema/tags/k6-script.sample.ts +12 -3
  31. package/examples/form_url_encoded_data_with_query_params_schema/schema.json +8 -4
  32. package/examples/form_url_encoded_data_with_query_params_schema/single/formURLEncodedAPIWithQueryParameters.ts +1 -1
  33. package/examples/form_url_encoded_data_with_query_params_schema/single/k6-script.sample.ts +19 -6
  34. package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.schemas.ts +1 -1
  35. package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.ts +1 -1
  36. package/examples/form_url_encoded_data_with_query_params_schema/split/k6-script.sample.ts +19 -6
  37. package/examples/form_url_encoded_data_with_query_params_schema/tags/default.ts +1 -1
  38. package/examples/form_url_encoded_data_with_query_params_schema/tags/formURLEncodedAPIWithQueryParameters.schemas.ts +1 -1
  39. package/examples/form_url_encoded_data_with_query_params_schema/tags/k6-script.sample.ts +14 -3
  40. package/examples/get_request_with_path_parameters_schema/schema.json +2 -1
  41. package/examples/get_request_with_path_parameters_schema/single/k6-script.sample.ts +6 -2
  42. package/examples/get_request_with_path_parameters_schema/single/simpleAPI.ts +1 -1
  43. package/examples/get_request_with_path_parameters_schema/split/k6-script.sample.ts +6 -2
  44. package/examples/get_request_with_path_parameters_schema/split/simpleAPI.schemas.ts +1 -1
  45. package/examples/get_request_with_path_parameters_schema/split/simpleAPI.ts +1 -1
  46. package/examples/get_request_with_path_parameters_schema/tags/default.ts +1 -1
  47. package/examples/get_request_with_path_parameters_schema/tags/k6-script.sample.ts +7 -3
  48. package/examples/get_request_with_path_parameters_schema/tags/simpleAPI.schemas.ts +1 -1
  49. package/examples/headers_schema/schema.json +2 -1
  50. package/examples/headers_schema/single/headerDemoAPI.ts +1 -1
  51. package/examples/headers_schema/single/k6-script.sample.ts +15 -4
  52. package/examples/headers_schema/split/headerDemoAPI.schemas.ts +1 -1
  53. package/examples/headers_schema/split/headerDemoAPI.ts +1 -1
  54. package/examples/headers_schema/split/k6-script.sample.ts +15 -4
  55. package/examples/headers_schema/tags/default.ts +1 -1
  56. package/examples/headers_schema/tags/headerDemoAPI.schemas.ts +1 -1
  57. package/examples/headers_schema/tags/k6-script.sample.ts +16 -5
  58. package/examples/no_title_schema/single/k6-script.sample.ts +3 -2
  59. package/examples/no_title_schema/single/k6Client.ts +1 -1
  60. package/examples/no_title_schema/split/k6-script.sample.ts +3 -2
  61. package/examples/no_title_schema/split/k6Client.schemas.ts +1 -1
  62. package/examples/no_title_schema/split/k6Client.ts +1 -1
  63. package/examples/no_title_schema/tags/default.ts +1 -1
  64. package/examples/no_title_schema/tags/k6-script.sample.ts +4 -3
  65. package/examples/no_title_schema/tags/k6Client.schemas.ts +1 -1
  66. package/examples/post_request_with_query_params/schema.json +14 -7
  67. package/examples/post_request_with_query_params/single/exampleAPI.ts +1 -1
  68. package/examples/post_request_with_query_params/single/k6-script.sample.ts +11 -2
  69. package/examples/post_request_with_query_params/split/exampleAPI.schemas.ts +1 -1
  70. package/examples/post_request_with_query_params/split/exampleAPI.ts +1 -1
  71. package/examples/post_request_with_query_params/split/k6-script.sample.ts +11 -2
  72. package/examples/post_request_with_query_params/tags/default.ts +1 -1
  73. package/examples/post_request_with_query_params/tags/exampleAPI.schemas.ts +1 -1
  74. package/examples/post_request_with_query_params/tags/k6-script.sample.ts +12 -3
  75. package/examples/query_params_schema/schema.json +20 -10
  76. package/examples/query_params_schema/single/exampleAPI.ts +1 -1
  77. package/examples/query_params_schema/single/k6-script.sample.ts +8 -2
  78. package/examples/query_params_schema/split/exampleAPI.schemas.ts +1 -1
  79. package/examples/query_params_schema/split/exampleAPI.ts +1 -1
  80. package/examples/query_params_schema/split/k6-script.sample.ts +8 -2
  81. package/examples/query_params_schema/tags/default.ts +1 -1
  82. package/examples/query_params_schema/tags/exampleAPI.schemas.ts +1 -1
  83. package/examples/query_params_schema/tags/k6-script.sample.ts +9 -3
  84. package/examples/simple_post_request_schema/schema.json +30 -15
  85. package/examples/simple_post_request_schema/single/exampleAPI.ts +1 -1
  86. package/examples/simple_post_request_schema/single/k6-script.sample.ts +16 -2
  87. package/examples/simple_post_request_schema/split/exampleAPI.schemas.ts +1 -1
  88. package/examples/simple_post_request_schema/split/exampleAPI.ts +1 -1
  89. package/examples/simple_post_request_schema/split/k6-script.sample.ts +16 -2
  90. package/examples/simple_post_request_schema/tags/default.ts +1 -1
  91. package/examples/simple_post_request_schema/tags/exampleAPI.schemas.ts +1 -1
  92. package/examples/simple_post_request_schema/tags/k6-script.sample.ts +17 -3
  93. package/package.json +3 -1
  94. package/src/constants.ts +7 -3
  95. package/src/generator/k6Client.ts +3 -72
  96. package/src/generator/k6ScriptBuilder.ts +328 -0
  97. package/tests/e2e/schema.json +135 -18
  98. package/tests/functional-tests/helper.ts +16 -0
  99. package/tests/functional-tests/test-generator/generator.test.ts +154 -0
  100. package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_using_ref_models.json +394 -0
  101. package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_with_examples.json +416 -0
  102. package/tests/functional-tests/test-sample-k6-scripts/fixtures/schema_with_no_variables.json +32 -0
  103. package/tests/functional-tests/test-sample-k6-scripts/sampleK6Scripts.test.ts +248 -0
  104. package/tests/functional-tests/test-tags-filtering/tagsFiltering.test.ts +166 -0
  105. package/tests/functional-tests/generator.test.ts +0 -319
  106. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/basic_schema.json +0 -0
  107. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_data_schema.json +0 -0
  108. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_url_encoded_data_schema.json +0 -0
  109. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/form_url_encoded_data_with_query_params_schema.json +0 -0
  110. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/get_request_with_path_parameters_schema.json +0 -0
  111. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/headers_schema.json +0 -0
  112. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/no_title_schema.json +0 -0
  113. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/post_request_with_query_params.json +0 -0
  114. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/query_params_schema.json +0 -0
  115. /package/tests/functional-tests/{fixtures/schemas → test-generator/fixtures}/simple_post_request_schema.json +0 -0
  116. /package/tests/functional-tests/{fixtures → test-tags-filtering/fixtures}/tags_filtering.json +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * K6Client
5
5
  * Service version: 1.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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with a POST request having an object as the body and query parameters
@@ -1,13 +1,22 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with a POST request having an object as the body and query parameters
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with a POST request having an object as the body and query parameters
@@ -1,13 +1,22 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with a POST request having an object as the body and query parameters
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with a POST request having an object as the body and query parameters
@@ -1,13 +1,22 @@
1
- import { ExampleAPIClient } from './exampleAPI.ts'
1
+ import { DefaultClient } from './default.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of query parameters
@@ -1,11 +1,17 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const getExampleDataResponseData = client.getExampleData(params)
12
+ params = {
13
+ name: 'John Doe',
14
+ }
15
+
16
+ const getExampleDataResponseData = exampleAPIClient.getExampleData(params)
11
17
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of query parameters
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of query parameters
@@ -1,11 +1,17 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const getExampleDataResponseData = client.getExampleData(params)
12
+ params = {
13
+ name: 'John Doe',
14
+ }
15
+
16
+ const getExampleDataResponseData = exampleAPIClient.getExampleData(params)
11
17
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of query parameters
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of query parameters
@@ -1,11 +1,17 @@
1
- import { ExampleAPIClient } from './exampleAPI.ts'
1
+ import { DefaultClient } from './default.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const getExampleDataResponseData = client.getExampleData(params)
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of data in the POST request body
@@ -1,13 +1,27 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of data in the POST request body
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of data in the POST request body
@@ -1,13 +1,27 @@
1
1
  import { ExampleAPIClient } from './exampleAPI.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of data in the POST request body
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.2.6
2
+ * Automatically generated by @grafana/openapi-to-k6: 0.3.0
3
3
  * Do not edit manually.
4
4
  * Example API
5
5
  * API with all formats of data in the POST request body
@@ -1,13 +1,27 @@
1
- import { ExampleAPIClient } from './exampleAPI.ts'
1
+ import { DefaultClient } from './default.ts'
2
2
 
3
3
  const baseUrl = '<BASE_URL>'
4
- const client = new ExampleAPIClient({ baseUrl })
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
- const createExampleDataResponseData = client.createExampleData(
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.2.6",
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",