mmt-mcp 1.42.2-pre

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 (343) hide show
  1. package/README.md +22 -0
  2. package/dist/examples/README.md +19 -0
  3. package/dist/examples/ai/golden_smoke/README.md +8 -0
  4. package/dist/examples/ai/golden_smoke/apis/echo.mmt +12 -0
  5. package/dist/examples/ai/golden_smoke/tests/echo-smoke.mmt +18 -0
  6. package/dist/examples/basic/01_simple_api/README.md +38 -0
  7. package/dist/examples/basic/01_simple_api/get_json.mmt +6 -0
  8. package/dist/examples/basic/01_simple_api/post_echo_json_body.mmt +13 -0
  9. package/dist/examples/basic/01_simple_api/post_echo_yaml_body.mmt +11 -0
  10. package/dist/examples/basic/02_simple_test/README.md +35 -0
  11. package/dist/examples/basic/02_simple_test/echo_test.mmt +12 -0
  12. package/dist/examples/basic/03_environment_variables/README.md +40 -0
  13. package/dist/examples/basic/03_environment_variables/get_json.mmt +6 -0
  14. package/dist/examples/basic/03_environment_variables/multimeter.mmt +3 -0
  15. package/dist/examples/basic/04_basic_suite/README.md +33 -0
  16. package/dist/examples/basic/04_basic_suite/suite.mmt +6 -0
  17. package/dist/examples/basic/04_basic_suite/tests/get_status_test.mmt +9 -0
  18. package/dist/examples/basic/04_basic_suite/tests/post_echo_test.mmt +12 -0
  19. package/dist/examples/basic/05_basic_documentation/README.md +24 -0
  20. package/dist/examples/basic/05_basic_documentation/api/get_user.mmt +12 -0
  21. package/dist/examples/basic/05_basic_documentation/document.mmt +4 -0
  22. package/dist/examples/examples-index.json +1559 -0
  23. package/dist/examples/intermediate/01_api_inputs_outputs/README.md +46 -0
  24. package/dist/examples/intermediate/01_api_inputs_outputs/get_dot_notation.mmt +14 -0
  25. package/dist/examples/intermediate/01_api_inputs_outputs/get_with_outputs.mmt +10 -0
  26. package/dist/examples/intermediate/01_api_inputs_outputs/post_regex_outputs.mmt +24 -0
  27. package/dist/examples/intermediate/01_api_inputs_outputs/post_with_inputs_outputs.mmt +20 -0
  28. package/dist/examples/intermediate/02_websocket/README.md +44 -0
  29. package/dist/examples/intermediate/02_websocket/ws_echo.mmt +11 -0
  30. package/dist/examples/intermediate/02_websocket/ws_json_echo.mmt +16 -0
  31. package/dist/examples/intermediate/03_graphql/README.md +10 -0
  32. package/dist/examples/intermediate/03_graphql/graphql_query.mmt +16 -0
  33. package/dist/examples/intermediate/03_graphql/graphql_variables.mmt +25 -0
  34. package/dist/examples/intermediate/04_grpc/README.md +10 -0
  35. package/dist/examples/intermediate/04_grpc/grpc_server_stream.mmt +15 -0
  36. package/dist/examples/intermediate/04_grpc/grpc_unary.mmt +13 -0
  37. package/dist/examples/intermediate/05_api_documentation/README.md +33 -0
  38. package/dist/examples/intermediate/05_api_documentation/api/get_users.mmt +13 -0
  39. package/dist/examples/intermediate/05_api_documentation/api/post_create_user.mmt +25 -0
  40. package/dist/examples/intermediate/05_api_documentation/api/ws_notifications.mmt +18 -0
  41. package/dist/examples/intermediate/05_api_documentation/document.mmt +17 -0
  42. package/dist/examples/intermediate/05_api_documentation/markdown_api/health_check.mmt +6 -0
  43. package/dist/examples/intermediate/05_api_documentation/markdown_api/overview.md +77 -0
  44. package/dist/examples/intermediate/05_api_documentation/markdown_api/search_products.mmt +15 -0
  45. package/dist/examples/intermediate/05_api_documentation/markdown_api/submit_order.mmt +18 -0
  46. package/dist/examples/intermediate/06_imports/README.md +92 -0
  47. package/dist/examples/intermediate/06_imports/apis/echo_api.mmt +13 -0
  48. package/dist/examples/intermediate/06_imports/apis/greet_api.mmt +13 -0
  49. package/dist/examples/intermediate/06_imports/multimeter.mmt +5 -0
  50. package/dist/examples/intermediate/06_imports/test_relative.mmt +15 -0
  51. package/dist/examples/intermediate/06_imports/test_root_import.mmt +14 -0
  52. package/dist/examples/intermediate/06_imports/tests/test_api.mmt +30 -0
  53. package/dist/examples/intermediate/07_simple_suite/README.md +56 -0
  54. package/dist/examples/intermediate/07_simple_suite/api/echo_api.mmt +12 -0
  55. package/dist/examples/intermediate/07_simple_suite/api/status_api.mmt +8 -0
  56. package/dist/examples/intermediate/07_simple_suite/suite_parallel.mmt +11 -0
  57. package/dist/examples/intermediate/07_simple_suite/suite_sequential.mmt +14 -0
  58. package/dist/examples/intermediate/07_simple_suite/test/echo_test.mmt +16 -0
  59. package/dist/examples/intermediate/07_simple_suite/test/echo_test_fail.mmt +15 -0
  60. package/dist/examples/intermediate/07_simple_suite/test/status_test.mmt +11 -0
  61. package/dist/examples/intermediate/07_simple_suite/test/status_test_fail.mmt +11 -0
  62. package/dist/examples/intermediate/08_chained_api_calls/README.md +58 -0
  63. package/dist/examples/intermediate/08_chained_api_calls/api/get_profile.mmt +15 -0
  64. package/dist/examples/intermediate/08_chained_api_calls/api/login.mmt +17 -0
  65. package/dist/examples/intermediate/08_chained_api_calls/chained_test.mmt +31 -0
  66. package/dist/examples/intermediate/09_csv_data_driven_test/README.md +80 -0
  67. package/dist/examples/intermediate/09_csv_data_driven_test/echo_api.mmt +14 -0
  68. package/dist/examples/intermediate/09_csv_data_driven_test/echo_csv_test.mmt +18 -0
  69. package/dist/examples/intermediate/10_environment_presets/README.md +58 -0
  70. package/dist/examples/intermediate/10_environment_presets/api/echo_env.mmt +14 -0
  71. package/dist/examples/intermediate/10_environment_presets/multimeter.mmt +22 -0
  72. package/dist/examples/intermediate/10_environment_presets/test/preset_test.mmt +14 -0
  73. package/dist/examples/intermediate/11_control_flow/README.md +48 -0
  74. package/dist/examples/intermediate/11_control_flow/api/echo.mmt +13 -0
  75. package/dist/examples/intermediate/11_control_flow/for_loop_test.mmt +15 -0
  76. package/dist/examples/intermediate/11_control_flow/if_else_test.mmt +19 -0
  77. package/dist/examples/intermediate/11_control_flow/repeat_delay_test.mmt +24 -0
  78. package/dist/examples/intermediate/12_random_values/README.md +59 -0
  79. package/dist/examples/intermediate/12_random_values/api/random_echo.mmt +21 -0
  80. package/dist/examples/intermediate/12_random_values/random_values_test.mmt +15 -0
  81. package/dist/examples/intermediate/13_stages_and_conditions/README.md +58 -0
  82. package/dist/examples/intermediate/13_stages_and_conditions/api/get_profile.mmt +13 -0
  83. package/dist/examples/intermediate/13_stages_and_conditions/api/get_settings.mmt +13 -0
  84. package/dist/examples/intermediate/13_stages_and_conditions/api/login.mmt +15 -0
  85. package/dist/examples/intermediate/13_stages_and_conditions/stages_test.mmt +40 -0
  86. package/dist/examples/intermediate/14_javascript_helpers/README.md +59 -0
  87. package/dist/examples/intermediate/14_javascript_helpers/api/echo.mmt +13 -0
  88. package/dist/examples/intermediate/14_javascript_helpers/js_test.mmt +31 -0
  89. package/dist/examples/intermediate/15_http_files/README.md +25 -0
  90. package/dist/examples/intermediate/15_http_files/import_http_in_test.mmt +8 -0
  91. package/dist/examples/intermediate/16_bruno_files/README.md +36 -0
  92. package/dist/examples/intermediate/16_bruno_files/import_bruno_in_test.mmt +18 -0
  93. package/dist/examples/intermediate/16_bruno_files/library/README.md +8 -0
  94. package/dist/examples/intermediate/17_api_authentication/README.md +35 -0
  95. package/dist/examples/intermediate/17_api_authentication/get_with_apikey_auth.mmt +10 -0
  96. package/dist/examples/intermediate/17_api_authentication/get_with_basic_auth.mmt +10 -0
  97. package/dist/examples/intermediate/17_api_authentication/get_with_bearer_auth.mmt +9 -0
  98. package/dist/examples/intermediate/18_simple_mock_server/README.md +92 -0
  99. package/dist/examples/intermediate/18_simple_mock_server/api/create_user.mmt +15 -0
  100. package/dist/examples/intermediate/18_simple_mock_server/api/get_health.mmt +9 -0
  101. package/dist/examples/intermediate/18_simple_mock_server/api/get_user.mmt +12 -0
  102. package/dist/examples/intermediate/18_simple_mock_server/api/search.mmt +11 -0
  103. package/dist/examples/intermediate/18_simple_mock_server/server/mock_server.mmt +46 -0
  104. package/dist/examples/intermediate/18_simple_mock_server/suite.mmt +12 -0
  105. package/dist/examples/intermediate/18_simple_mock_server/test/health_test.mmt +13 -0
  106. package/dist/examples/intermediate/18_simple_mock_server/test/search_test.mmt +15 -0
  107. package/dist/examples/intermediate/18_simple_mock_server/test/user_test.mmt +27 -0
  108. package/dist/examples/intermediate/19_environment_post_echo/README.md +33 -0
  109. package/dist/examples/intermediate/19_environment_post_echo/multimeter.mmt +4 -0
  110. package/dist/examples/intermediate/19_environment_post_echo/post_echo.mmt +12 -0
  111. package/dist/examples/intermediate/20_document_parameters/README.md +25 -0
  112. package/dist/examples/intermediate/20_document_parameters/api/search_users.mmt +28 -0
  113. package/dist/examples/intermediate/20_document_parameters/document.mmt +6 -0
  114. package/dist/examples/intermediate/21_manual_timeout/README.md +22 -0
  115. package/dist/examples/intermediate/21_manual_timeout/manual_timeout.mmt +11 -0
  116. package/dist/examples/intermediate/22_omit_keyword/README.md +45 -0
  117. package/dist/examples/intermediate/22_omit_keyword/omit_keyword.mmt +34 -0
  118. package/dist/examples/intermediate/22_omit_keyword/omit_keyword_test.mmt +19 -0
  119. package/dist/examples/intermediate/23_check_operators/README.md +31 -0
  120. package/dist/examples/intermediate/23_check_operators/api/sample.mmt +27 -0
  121. package/dist/examples/intermediate/23_check_operators/operators_test.mmt +54 -0
  122. package/dist/examples/intermediate/24_test_call_cache/README.md +34 -0
  123. package/dist/examples/intermediate/24_test_call_cache/api/login_echo.mmt +19 -0
  124. package/dist/examples/intermediate/24_test_call_cache/create_session.mmt +28 -0
  125. package/dist/examples/intermediate/24_test_call_cache/use_session_cache.mmt +41 -0
  126. package/dist/examples/intermediate/25_convert_to_mmt/README.md +17 -0
  127. package/dist/examples/intermediate/25_convert_to_mmt/bruno/README.md +5 -0
  128. package/dist/examples/intermediate/25_convert_to_mmt/bruno/converted/api/create-user.mmt +11 -0
  129. package/dist/examples/intermediate/25_convert_to_mmt/bruno/converted/tests/create-user.mmt +11 -0
  130. package/dist/examples/intermediate/25_convert_to_mmt/http/README.md +5 -0
  131. package/dist/examples/intermediate/25_convert_to_mmt/http/converted/api/ping.mmt +9 -0
  132. package/dist/examples/intermediate/25_convert_to_mmt/http/converted/tests/source-http.mmt +11 -0
  133. package/dist/examples/intermediate/25_convert_to_mmt/openapi/README.md +5 -0
  134. package/dist/examples/intermediate/25_convert_to_mmt/openapi/converted/api/get-sample-json.mmt +8 -0
  135. package/dist/examples/intermediate/25_convert_to_mmt/postman/README.md +7 -0
  136. package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/api/ping.mmt +23 -0
  137. package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/suites/collection.mmt +7 -0
  138. package/dist/examples/intermediate/25_convert_to_mmt/postman/converted/tests/collection.mmt +17 -0
  139. package/dist/examples/intermediate/25_convert_to_mmt/wsdl/README.md +5 -0
  140. package/dist/examples/intermediate/25_convert_to_mmt/wsdl/converted/api/ping.mmt +21 -0
  141. package/dist/examples/intermediate/26_yaml_expect_typing/README.md +21 -0
  142. package/dist/examples/intermediate/26_yaml_expect_typing/typing_test.mmt +29 -0
  143. package/dist/examples/intermediate/27_ai_judge/README.md +31 -0
  144. package/dist/examples/intermediate/27_ai_judge/judge_demo.mmt +33 -0
  145. package/dist/examples/intermediate/27_ai_judge/judges/gemini.mmt +12 -0
  146. package/dist/examples/intermediate/27_ai_judge/judges/ollama.mmt +8 -0
  147. package/dist/examples/professional/01_report_generation/README.md +87 -0
  148. package/dist/examples/professional/01_report_generation/api/echo.mmt +13 -0
  149. package/dist/examples/professional/01_report_generation/suite.mmt +12 -0
  150. package/dist/examples/professional/01_report_generation/test/fail_test.mmt +11 -0
  151. package/dist/examples/professional/01_report_generation/test/pass_test.mmt +17 -0
  152. package/dist/examples/professional/02_tls_certificates/README.md +113 -0
  153. package/dist/examples/professional/02_tls_certificates/api/secure_echo.mmt +13 -0
  154. package/dist/examples/professional/02_tls_certificates/env.mmt +17 -0
  155. package/dist/examples/professional/02_tls_certificates/tls_test.mmt +12 -0
  156. package/dist/examples/professional/03_load_test/README.md +39 -0
  157. package/dist/examples/professional/03_load_test/echo_api.mmt +12 -0
  158. package/dist/examples/professional/03_load_test/echo_test.mmt +14 -0
  159. package/dist/examples/professional/03_load_test/loadtest.mmt +15 -0
  160. package/dist/examples/professional/04_convert_to_mmt/README.md +30 -0
  161. package/dist/examples/professional/04_convert_to_mmt/bruno/README.md +8 -0
  162. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/basic-auth-check.mmt +9 -0
  163. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/bearer-auth-check.mmt +12 -0
  164. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/cache-headers.mmt +9 -0
  165. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/delayed-response.mmt +9 -0
  166. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-anything-alias.mmt +11 -0
  167. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-delete.mmt +9 -0
  168. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-get-with-query.mmt +10 -0
  169. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-post-body.mmt +13 -0
  170. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/echo-put-body.mmt +14 -0
  171. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-html.mmt +9 -0
  172. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-json.mmt +9 -0
  173. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/get-sample-xml.mmt +9 -0
  174. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/method-match-get.mmt +9 -0
  175. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/random-bytes.mmt +9 -0
  176. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/redirect-twice.mmt +9 -0
  177. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-client-ip.mmt +9 -0
  178. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-cookies.mmt +9 -0
  179. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-request-headers.mmt +10 -0
  180. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-status-200.mmt +9 -0
  181. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/return-status-404.mmt +9 -0
  182. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/service-help.mmt +9 -0
  183. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/api/set-cookie.mmt +9 -0
  184. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/basic-auth-check.mmt +11 -0
  185. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/bearer-auth-check.mmt +11 -0
  186. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/cache-headers.mmt +11 -0
  187. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/delayed-response.mmt +11 -0
  188. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-anything-alias.mmt +11 -0
  189. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-delete.mmt +11 -0
  190. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-get-with-query.mmt +11 -0
  191. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-post-body.mmt +11 -0
  192. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/echo-put-body.mmt +11 -0
  193. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-html.mmt +11 -0
  194. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-json.mmt +11 -0
  195. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/get-sample-xml.mmt +11 -0
  196. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/method-match-get.mmt +11 -0
  197. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/random-bytes.mmt +11 -0
  198. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/redirect-twice.mmt +11 -0
  199. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-client-ip.mmt +11 -0
  200. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-cookies.mmt +11 -0
  201. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-request-headers.mmt +11 -0
  202. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-status-200.mmt +11 -0
  203. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/return-status-404.mmt +11 -0
  204. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/service-help.mmt +11 -0
  205. package/dist/examples/professional/04_convert_to_mmt/bruno/converted/tests/set-cookie.mmt +11 -0
  206. package/dist/examples/professional/04_convert_to_mmt/http/README.md +7 -0
  207. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/basic-auth-check.mmt +10 -0
  208. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/bearer-auth-check.mmt +10 -0
  209. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/cache-headers.mmt +9 -0
  210. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/delayed-response.mmt +9 -0
  211. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-anything-alias.mmt +11 -0
  212. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-delete.mmt +9 -0
  213. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-get-with-query.mmt +10 -0
  214. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-post-body.mmt +13 -0
  215. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/echo-put-body.mmt +14 -0
  216. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-html.mmt +9 -0
  217. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-json.mmt +9 -0
  218. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/get-sample-xml.mmt +9 -0
  219. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/method-match-get.mmt +9 -0
  220. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/random-bytes.mmt +9 -0
  221. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/redirect-twice.mmt +9 -0
  222. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-client-ip.mmt +9 -0
  223. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-cookies.mmt +9 -0
  224. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-request-headers.mmt +10 -0
  225. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-status-200.mmt +9 -0
  226. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/return-status-404.mmt +9 -0
  227. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/service-help.mmt +9 -0
  228. package/dist/examples/professional/04_convert_to_mmt/http/converted/api/set-cookie.mmt +9 -0
  229. package/dist/examples/professional/04_convert_to_mmt/http/converted/tests/source-http.mmt +95 -0
  230. package/dist/examples/professional/04_convert_to_mmt/openapi/README.md +8 -0
  231. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/basic-auth-check.mmt +11 -0
  232. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/bearer-auth-check.mmt +11 -0
  233. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/cache-headers.mmt +7 -0
  234. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/delayed-response.mmt +7 -0
  235. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-anything-alias.mmt +13 -0
  236. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-delete.mmt +7 -0
  237. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-get-with-query.mmt +11 -0
  238. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-post-body.mmt +36 -0
  239. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/echo-put-body.mmt +25 -0
  240. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-html.mmt +7 -0
  241. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-json.mmt +7 -0
  242. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/get-sample-xml.mmt +7 -0
  243. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/method-match.mmt +7 -0
  244. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/random-bytes.mmt +7 -0
  245. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/redirect-n-times.mmt +7 -0
  246. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-client-ip.mmt +7 -0
  247. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-cookies.mmt +7 -0
  248. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-request-headers.mmt +7 -0
  249. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/return-status-code.mmt +7 -0
  250. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/service-help.mmt +7 -0
  251. package/dist/examples/professional/04_convert_to_mmt/openapi/converted/api/set-cookie.mmt +9 -0
  252. package/dist/examples/professional/04_convert_to_mmt/postman/README.md +8 -0
  253. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/auth/basic-auth-check.mmt +11 -0
  254. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/auth/bearer-auth-check.mmt +10 -0
  255. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-anything-alias.mmt +11 -0
  256. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-delete.mmt +7 -0
  257. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-get-with-query.mmt +8 -0
  258. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-post-body.mmt +13 -0
  259. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/echo/echo-put-body.mmt +14 -0
  260. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-client-ip.mmt +7 -0
  261. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-cookies.mmt +7 -0
  262. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/return-request-headers.mmt +8 -0
  263. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/inspect/set-cookie.mmt +7 -0
  264. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-html.mmt +7 -0
  265. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-json.mmt +28 -0
  266. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/get-sample-xml.mmt +7 -0
  267. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/random-bytes.mmt +7 -0
  268. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/samples/service-help.mmt +7 -0
  269. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/cache-headers.mmt +7 -0
  270. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/delayed-response.mmt +7 -0
  271. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/method-match-get.mmt +7 -0
  272. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/redirect-twice.mmt +7 -0
  273. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/return-status-200.mmt +7 -0
  274. package/dist/examples/professional/04_convert_to_mmt/postman/converted/api/status/return-status-404.mmt +7 -0
  275. package/dist/examples/professional/04_convert_to_mmt/postman/converted/multimeter.mmt +11 -0
  276. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/auth.mmt +7 -0
  277. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/collection.mmt +15 -0
  278. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/echo.mmt +7 -0
  279. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/inspect.mmt +7 -0
  280. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/samples.mmt +7 -0
  281. package/dist/examples/professional/04_convert_to_mmt/postman/converted/suites/status.mmt +7 -0
  282. package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/auth.mmt +15 -0
  283. package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/echo.mmt +27 -0
  284. package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/inspect.mmt +23 -0
  285. package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/samples.mmt +29 -0
  286. package/dist/examples/professional/04_convert_to_mmt/postman/converted/tests/status.mmt +31 -0
  287. package/dist/examples/professional/04_convert_to_mmt/wsdl/README.md +8 -0
  288. package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/echomessage.mmt +23 -0
  289. package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/getsamplexml.mmt +21 -0
  290. package/dist/examples/professional/04_convert_to_mmt/wsdl/converted/api/probestatus.mmt +21 -0
  291. package/dist/examples/professional/05_tls_mock_server/README.md +19 -0
  292. package/dist/examples/professional/05_tls_mock_server/api/secure_health.mmt +11 -0
  293. package/dist/examples/professional/05_tls_mock_server/multimeter.mmt +3 -0
  294. package/dist/examples/professional/05_tls_mock_server/server/mock_server.mmt +23 -0
  295. package/dist/examples/professional/05_tls_mock_server/test/secure_health_test.mmt +15 -0
  296. package/dist/examples/professional/06_mtls_mock_server/README.md +23 -0
  297. package/dist/examples/professional/06_mtls_mock_server/api/secure_health.mmt +11 -0
  298. package/dist/examples/professional/06_mtls_mock_server/multimeter.mmt +12 -0
  299. package/dist/examples/professional/06_mtls_mock_server/server/mock_server.mmt +24 -0
  300. package/dist/examples/professional/06_mtls_mock_server/test/secure_health_test.mmt +15 -0
  301. package/dist/examples/professional/07_mock_server_timeout/README.md +26 -0
  302. package/dist/examples/professional/07_mock_server_timeout/api/slow_request.mmt +10 -0
  303. package/dist/examples/professional/07_mock_server_timeout/server/mock_server.mmt +19 -0
  304. package/dist/examples/professional/07_mock_server_timeout/suite.mmt +7 -0
  305. package/dist/examples/professional/07_mock_server_timeout/test/slow_timeout_test.mmt +15 -0
  306. package/dist/examples/professional/08_external_mtls_badssl/README.md +52 -0
  307. package/dist/examples/professional/08_external_mtls_badssl/api/badssl_client.mmt +6 -0
  308. package/dist/examples/professional/08_external_mtls_badssl/badssl_mtls_test.mmt +10 -0
  309. package/dist/examples/professional/08_external_mtls_badssl/multimeter.mmt +13 -0
  310. package/dist/examples/professional/09_ci_pipelines/README.md +92 -0
  311. package/dist/examples/professional/09_ci_pipelines/smoke_get.mmt +9 -0
  312. package/dist/examples/professional/09_ci_pipelines/smoke_post.mmt +12 -0
  313. package/dist/examples/professional/09_ci_pipelines/suite.mmt +9 -0
  314. package/dist/examples/professional/10_vault_http_setenv/README.md +60 -0
  315. package/dist/examples/professional/10_vault_http_setenv/api/bearer_with_env_token.mmt +16 -0
  316. package/dist/examples/professional/10_vault_http_setenv/api/vault_kv_read.mmt +22 -0
  317. package/dist/examples/professional/10_vault_http_setenv/env.mmt +21 -0
  318. package/dist/examples/professional/10_vault_http_setenv/server/vault_kv_mock.mmt +45 -0
  319. package/dist/examples/professional/10_vault_http_setenv/vault_to_api_test.mmt +22 -0
  320. package/dist/guides/agent-workflow.md +75 -0
  321. package/dist/guides/general.md +64 -0
  322. package/dist/guides/generate-api.md +221 -0
  323. package/dist/guides/generate-doc.md +103 -0
  324. package/dist/guides/generate-env.md +147 -0
  325. package/dist/guides/generate-loadtest.md +55 -0
  326. package/dist/guides/generate-suite.md +167 -0
  327. package/dist/guides/generate-test-skill.md +60 -0
  328. package/dist/guides/generate-test.md +335 -0
  329. package/dist/guides/generate.md +60 -0
  330. package/dist/guides/golden-smoke.md +52 -0
  331. package/dist/guides/min/api.md +29 -0
  332. package/dist/guides/min/constraints.md +9 -0
  333. package/dist/guides/min/doc.md +17 -0
  334. package/dist/guides/min/env.md +26 -0
  335. package/dist/guides/min/loadtest.md +17 -0
  336. package/dist/guides/min/overview.md +25 -0
  337. package/dist/guides/min/suite.md +18 -0
  338. package/dist/guides/min/test.md +42 -0
  339. package/dist/guides/min/workflow.md +16 -0
  340. package/dist/guides/offline-agent.md +46 -0
  341. package/dist/server.cjs +27500 -0
  342. package/dist/server.js +27500 -0
  343. package/package.json +58 -0
@@ -0,0 +1,8 @@
1
+ type: api
2
+ title: Return request headers
3
+ url: <<e:host>>/headers
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
8
+ X-Trace: demo
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Set cookie
3
+ url: <<e:host>>/cookies/set?session=demo
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Get sample HTML
3
+ url: <<e:host>>/html
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: text/html
@@ -0,0 +1,28 @@
1
+ type: api
2
+ title: Get sample JSON
3
+ outputs:
4
+ status: status
5
+ statusCode: status
6
+ id: body.id
7
+ name: body.name
8
+ description: body.description
9
+ version: body.version
10
+ tags: body.tags
11
+ url: <<e:host>>/json
12
+ method: get
13
+ format: json
14
+ headers:
15
+ Accept: application/json
16
+ examples:
17
+ - name: sample json
18
+ outputs:
19
+ status: 200
20
+ statusCode: 200
21
+ id: 1
22
+ name: Multimeter
23
+ description: API testing tool
24
+ version: 1.0.0
25
+ tags:
26
+ - api
27
+ - testing
28
+ - automation
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Get sample XML
3
+ url: <<e:host>>/xml
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/xml
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Random bytes
3
+ url: <<e:host>>/bytes/64
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/octet-stream
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Service help
3
+ url: <<e:host>>/
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Cache headers
3
+ url: <<e:host>>/cache/60
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Delayed response
3
+ url: <<e:host>>/delay/250
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Method match GET
3
+ url: <<e:host>>/method/get
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Redirect twice
3
+ url: <<e:host>>/redirect/2
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Return status 200
3
+ url: <<e:host>>/status/200
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,7 @@
1
+ type: api
2
+ title: Return status 404
3
+ url: <<e:host>>/status/404
4
+ method: get
5
+ format: json
6
+ headers:
7
+ Accept: application/json
@@ -0,0 +1,11 @@
1
+ type: env
2
+ variables:
3
+ host:
4
+ default: https://test.mmt.dev
5
+ token:
6
+ default: testtoken
7
+ presets:
8
+ postman:
9
+ default:
10
+ host: default
11
+ token: default
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Auth
3
+ description: Generated from Postman collection folder "Auth".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/tests/auth.mmt
@@ -0,0 +1,15 @@
1
+ type: suite
2
+ title: Multimeter Test Server
3
+ description: Generated from Postman collection folder "Multimeter Test Server".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/suites/auth.mmt
8
+ - then
9
+ - +/suites/echo.mmt
10
+ - then
11
+ - +/suites/inspect.mmt
12
+ - then
13
+ - +/suites/samples.mmt
14
+ - then
15
+ - +/suites/status.mmt
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Echo
3
+ description: Generated from Postman collection folder "Echo".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/tests/echo.mmt
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Inspect
3
+ description: Generated from Postman collection folder "Inspect".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/tests/inspect.mmt
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Samples
3
+ description: Generated from Postman collection folder "Samples".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/tests/samples.mmt
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Status
3
+ description: Generated from Postman collection folder "Status".
4
+ tags:
5
+ - postman
6
+ items:
7
+ - +/tests/status.mmt
@@ -0,0 +1,15 @@
1
+ type: test
2
+ title: Auth
3
+ description: Generated from Postman collection folder "Auth".
4
+ tags:
5
+ - postman
6
+ import:
7
+ bearerAuthCheck: +/api/auth/bearer-auth-check.mmt
8
+ basicAuthCheck: +/api/auth/basic-auth-check.mmt
9
+ steps:
10
+ - call: bearerAuthCheck
11
+ id: iBearerAuthCheck
12
+ debug: true
13
+ - call: basicAuthCheck
14
+ id: iBasicAuthCheck
15
+ debug: true
@@ -0,0 +1,27 @@
1
+ type: test
2
+ title: Echo
3
+ description: Generated from Postman collection folder "Echo".
4
+ tags:
5
+ - postman
6
+ import:
7
+ echoPostBody: +/api/echo/echo-post-body.mmt
8
+ echoPutBody: +/api/echo/echo-put-body.mmt
9
+ echoGetWithQuery: +/api/echo/echo-get-with-query.mmt
10
+ echoDelete: +/api/echo/echo-delete.mmt
11
+ echoAnythingAlias: +/api/echo/echo-anything-alias.mmt
12
+ steps:
13
+ - call: echoPostBody
14
+ id: iEchoPostBody
15
+ debug: true
16
+ - call: echoPutBody
17
+ id: iEchoPutBody
18
+ debug: true
19
+ - call: echoGetWithQuery
20
+ id: iEchoGetWithQuery
21
+ debug: true
22
+ - call: echoDelete
23
+ id: iEchoDelete
24
+ debug: true
25
+ - call: echoAnythingAlias
26
+ id: iEchoAnythingAlias
27
+ debug: true
@@ -0,0 +1,23 @@
1
+ type: test
2
+ title: Inspect
3
+ description: Generated from Postman collection folder "Inspect".
4
+ tags:
5
+ - postman
6
+ import:
7
+ returnRequestHeaders: +/api/inspect/return-request-headers.mmt
8
+ returnClientIp: +/api/inspect/return-client-ip.mmt
9
+ returnCookies: +/api/inspect/return-cookies.mmt
10
+ setCookie: +/api/inspect/set-cookie.mmt
11
+ steps:
12
+ - call: returnRequestHeaders
13
+ id: iReturnRequestHeaders
14
+ debug: true
15
+ - call: returnClientIp
16
+ id: iReturnClientIp
17
+ debug: true
18
+ - call: returnCookies
19
+ id: iReturnCookies
20
+ debug: true
21
+ - call: setCookie
22
+ id: iSetCookie
23
+ debug: true
@@ -0,0 +1,29 @@
1
+ type: test
2
+ title: Samples
3
+ description: Generated from Postman collection folder "Samples".
4
+ tags:
5
+ - postman
6
+ import:
7
+ serviceHelp: +/api/samples/service-help.mmt
8
+ getSampleJson: +/api/samples/get-sample-json.mmt
9
+ getSampleXml: +/api/samples/get-sample-xml.mmt
10
+ getSampleHtml: +/api/samples/get-sample-html.mmt
11
+ randomBytes: +/api/samples/random-bytes.mmt
12
+ steps:
13
+ - call: serviceHelp
14
+ id: iServiceHelp
15
+ debug: true
16
+ - call: getSampleJson
17
+ id: iGetSampleJson
18
+ expect:
19
+ status: == 200
20
+ debug: true
21
+ - call: getSampleXml
22
+ id: iGetSampleXml
23
+ debug: true
24
+ - call: getSampleHtml
25
+ id: iGetSampleHtml
26
+ debug: true
27
+ - call: randomBytes
28
+ id: iRandomBytes
29
+ debug: true
@@ -0,0 +1,31 @@
1
+ type: test
2
+ title: Status
3
+ description: Generated from Postman collection folder "Status".
4
+ tags:
5
+ - postman
6
+ import:
7
+ returnStatus200: +/api/status/return-status-200.mmt
8
+ returnStatus404: +/api/status/return-status-404.mmt
9
+ delayedResponse: +/api/status/delayed-response.mmt
10
+ redirectTwice: +/api/status/redirect-twice.mmt
11
+ cacheHeaders: +/api/status/cache-headers.mmt
12
+ methodMatchGet: +/api/status/method-match-get.mmt
13
+ steps:
14
+ - call: returnStatus200
15
+ id: iReturnStatus200
16
+ debug: true
17
+ - call: returnStatus404
18
+ id: iReturnStatus404
19
+ debug: true
20
+ - call: delayedResponse
21
+ id: iDelayedResponse
22
+ debug: true
23
+ - call: redirectTwice
24
+ id: iRedirectTwice
25
+ debug: true
26
+ - call: cacheHeaders
27
+ id: iCacheHeaders
28
+ debug: true
29
+ - call: methodMatchGet
30
+ id: iMethodMatchGet
31
+ debug: true
@@ -0,0 +1,8 @@
1
+ # Multimeter Test Server — WSDL
2
+
3
+ Multi-operation WSDL convert sample. The sandbox is HTTP-first; operations use `https://test.mmt.dev/xml` as the SOAP address so **Convert to MMT...** still produces several `type: api` files.
4
+
5
+ - Source: `source.wsdl`
6
+ - Converted APIs: `converted/api/`
7
+
8
+ See the [professional convert overview](../README.md). For a one-operation sample, see [intermediate WSDL convert](../../../intermediate/25_convert_to_mmt/wsdl/).
@@ -0,0 +1,23 @@
1
+ type: api
2
+ title: EchoMessage
3
+ inputs:
4
+ message: string
5
+ role: string
6
+ url: https://test.mmt.dev/xml
7
+ protocol: http
8
+ method: post
9
+ format: xml
10
+ headers:
11
+ Content-Type: text/xml; charset=utf-8
12
+ SOAPAction: urn:EchoMessage
13
+ body: |-
14
+ <?xml version="1.0" encoding="utf-8"?>
15
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
16
+ <soapenv:Header/>
17
+ <soapenv:Body>
18
+ <tns:EchoMessage>
19
+ <tns:message><<i:message>></tns:message>
20
+ <tns:role><<i:role>></tns:role>
21
+ </tns:EchoMessage>
22
+ </soapenv:Body>
23
+ </soapenv:Envelope>
@@ -0,0 +1,21 @@
1
+ type: api
2
+ title: GetSampleXml
3
+ inputs:
4
+ trace: string
5
+ url: https://test.mmt.dev/xml
6
+ protocol: http
7
+ method: post
8
+ format: xml
9
+ headers:
10
+ Content-Type: text/xml; charset=utf-8
11
+ SOAPAction: urn:GetSampleXml
12
+ body: |-
13
+ <?xml version="1.0" encoding="utf-8"?>
14
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
15
+ <soapenv:Header/>
16
+ <soapenv:Body>
17
+ <tns:GetSampleXml>
18
+ <tns:trace><<i:trace>></tns:trace>
19
+ </tns:GetSampleXml>
20
+ </soapenv:Body>
21
+ </soapenv:Envelope>
@@ -0,0 +1,21 @@
1
+ type: api
2
+ title: ProbeStatus
3
+ inputs:
4
+ code: 0
5
+ url: https://test.mmt.dev/xml
6
+ protocol: http
7
+ method: post
8
+ format: xml
9
+ headers:
10
+ Content-Type: text/xml; charset=utf-8
11
+ SOAPAction: urn:ProbeStatus
12
+ body: |-
13
+ <?xml version="1.0" encoding="utf-8"?>
14
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="urn:mmt-test">
15
+ <soapenv:Header/>
16
+ <soapenv:Body>
17
+ <tns:ProbeStatus>
18
+ <tns:code><<i:code>></tns:code>
19
+ </tns:ProbeStatus>
20
+ </soapenv:Body>
21
+ </soapenv:Envelope>
@@ -0,0 +1,19 @@
1
+ # TLS Mock Server
2
+
3
+ This example starts a local mock server with `protocol: https` and `connection.mode: tls`, then calls it from a Multimeter test.
4
+
5
+ ## Files
6
+
7
+ - `server/mock_server.mmt` defines the TLS mock server on port `29443`.
8
+ - `api/secure_health.mmt` calls the fixed client URL `https://localhost:29443/health`.
9
+ - `test/secure_health_test.mmt` starts the server and calls the API.
10
+ - `env.mmt` trusts the example CA certificate.
11
+ - `certs/` contains long-lived local test certificates for this example.
12
+
13
+ ## Run
14
+
15
+ ```sh
16
+ npx testlight run examples/professional/05_tls_mock_server/test/secure_health_test.mmt
17
+ ```
18
+
19
+ The runner discovers the nearest `env.mmt` automatically. You can still pass `--env-file examples/professional/05_tls_mock_server/env.mmt` explicitly if you prefer.
@@ -0,0 +1,11 @@
1
+ type: api
2
+ title: TLS Mock Health
3
+ description: Client call to the local TLS mock server
4
+ outputs:
5
+ status_code: status
6
+ status_field: body.status
7
+ transport: body.transport
8
+ message: body.message
9
+ url: https://localhost:29443/health
10
+ method: get
11
+ format: json
@@ -0,0 +1,3 @@
1
+ type: env
2
+ certificates:
3
+ server_ca: ./certs/ca.crt
@@ -0,0 +1,23 @@
1
+ type: server
2
+ title: TLS Mock Server
3
+ description: Local mock server using TLS with a trusted example CA
4
+ protocol: https
5
+ port: 29443
6
+ connection:
7
+ mode: tls
8
+ cert: ../certs/server.crt
9
+ key: ../certs/server.key
10
+ endpoints:
11
+ - method: get
12
+ path: /health
13
+ status: 200
14
+ format: json
15
+ body:
16
+ status: ok
17
+ transport: tls
18
+ message: hello from tls mock
19
+ fallback:
20
+ status: 404
21
+ format: json
22
+ body:
23
+ error: not found
@@ -0,0 +1,15 @@
1
+ type: test
2
+ title: TLS Mock Server Test
3
+ description: Starts a TLS mock server and calls it with the configured CA certificate
4
+ import:
5
+ server: ../server/mock_server.mmt
6
+ health: ../api/secure_health.mmt
7
+ steps:
8
+ - run: server
9
+ - call: health
10
+ id: result
11
+ expect:
12
+ status_code: 200
13
+ status_field: ok
14
+ transport: tls
15
+ report: all
@@ -0,0 +1,23 @@
1
+ # mTLS Mock Server
2
+
3
+ This example starts a local mock server with `protocol: https` and `connection.mode: mtls`, then calls it from a Multimeter test using a client certificate.
4
+
5
+ ## Files
6
+
7
+ - `server/mock_server.mmt` defines the mTLS mock server on port `29444`.
8
+ - `api/secure_health.mmt` calls the fixed client URL `https://localhost:29444/health`.
9
+ - `test/secure_health_test.mmt` starts the server and calls the API.
10
+ - `multimeter.mmt` trusts the example CA certificate and configures client certificates.
11
+ - `certs/` contains long-lived local test certificates for this example:
12
+ - PEM: `ca.crt`, `client.crt`, `client.key`, `server.crt`, `server.key`
13
+ - PKCS#12: `client.p12` (passphrase `mmt`) — same client identity as `client.crt` + `client.key`
14
+
15
+ The env file shows both formats. Matching uses the first enabled client for `localhost:29444`, so the PEM client is used at runtime. Switch to `pfx: ./certs/client.p12` if you want to send the PKCS#12 bundle instead.
16
+
17
+ ## Run
18
+
19
+ ```sh
20
+ npx testlight run examples/professional/06_mtls_mock_server/test/secure_health_test.mmt
21
+ ```
22
+
23
+ The runner discovers the nearest `multimeter.mmt` automatically. You can still pass `--env-file examples/professional/06_mtls_mock_server/multimeter.mmt` explicitly if you prefer.
@@ -0,0 +1,11 @@
1
+ type: api
2
+ title: mTLS Mock Health
3
+ description: Client call to the local mTLS mock server
4
+ outputs:
5
+ status_code: status
6
+ status_field: body.status
7
+ transport: body.transport
8
+ message: body.message
9
+ url: https://localhost:29444/health
10
+ method: get
11
+ format: json
@@ -0,0 +1,12 @@
1
+ type: env
2
+ certificates:
3
+ server_ca: ./certs/ca.crt
4
+ clients:
5
+ - name: mock-client
6
+ host: localhost:29444
7
+ cert: ./certs/client.crt
8
+ key: ./certs/client.key
9
+ - name: mock-client-p12
10
+ host: localhost:29444
11
+ pfx: ./certs/client.p12
12
+ passphrase_plain: mmt
@@ -0,0 +1,24 @@
1
+ type: server
2
+ title: mTLS Mock Server
3
+ description: Local mock server requiring a client certificate signed by the example CA
4
+ protocol: https
5
+ port: 29444
6
+ connection:
7
+ mode: mtls
8
+ cert: ../certs/server.crt
9
+ key: ../certs/server.key
10
+ client_ca: ../certs/ca.crt
11
+ endpoints:
12
+ - method: get
13
+ path: /health
14
+ status: 200
15
+ format: json
16
+ body:
17
+ status: ok
18
+ transport: mtls
19
+ message: hello from mtls mock
20
+ fallback:
21
+ status: 404
22
+ format: json
23
+ body:
24
+ error: not found
@@ -0,0 +1,15 @@
1
+ type: test
2
+ title: mTLS Mock Server Test
3
+ description: Starts an mTLS mock server and calls it with the configured CA and client certificate
4
+ import:
5
+ server: ../server/mock_server.mmt
6
+ health: ../api/secure_health.mmt
7
+ steps:
8
+ - run: server
9
+ - call: health
10
+ id: result
11
+ expect:
12
+ status_code: 200
13
+ status_field: ok
14
+ transport: mtls
15
+ report: all
@@ -0,0 +1,26 @@
1
+ # Mock Server Timeout Simulation
2
+
3
+ This professional example demonstrates a request timeout against a delayed local mock server endpoint.
4
+
5
+ ## Scenario
6
+
7
+ - The mock server exposes `GET /slow`.
8
+ - The endpoint has `delay: 3000`, so it waits 3 seconds before responding.
9
+ - The API request sets `timeout: 2000`, so it times out after 2 seconds.
10
+
11
+ ## Files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `server/mock_server.mmt` | Defines the mock server on port `9107` with a delayed `/slow` endpoint |
16
+ | `api/slow_request.mmt` | Calls `/slow` with `timeout: 2000` |
17
+ | `test/slow_timeout_test.mmt` | Starts the mock server and calls the slow API |
18
+ | `suite.mmt` | Runs the timeout simulation as a suite |
19
+
20
+ ## Run
21
+
22
+ ```sh
23
+ npx testlight run examples/professional/07_mock_server_timeout/test/slow_timeout_test.mmt
24
+ ```
25
+
26
+ This example is expected to fail with a request timeout because the request timeout is shorter than the mock response delay.
@@ -0,0 +1,10 @@
1
+ type: api
2
+ title: Slow request with short timeout
3
+ description: Calls a mock endpoint that waits 3 seconds, but this request times out after 2 seconds.
4
+ outputs:
5
+ status_code: status
6
+ response_time_ms: duration
7
+ url: http://localhost:9107/slow
8
+ method: get
9
+ timeout: 2000
10
+ format: json
@@ -0,0 +1,19 @@
1
+ type: server
2
+ title: Timeout Simulation Mock Server
3
+ description: A mock server endpoint that waits 3 seconds before responding.
4
+ port: 9107
5
+ cors: true
6
+ endpoints:
7
+ - method: get
8
+ path: /slow
9
+ status: 200
10
+ format: json
11
+ body:
12
+ status: slow-ok
13
+ message: This response arrives after 3 seconds
14
+ delay: 3000
15
+ fallback:
16
+ status: 404
17
+ format: json
18
+ body:
19
+ error: Not Found
@@ -0,0 +1,7 @@
1
+ type: suite
2
+ title: Mock Server Timeout Simulation
3
+ description: Runs the timeout simulation against a delayed mock endpoint.
4
+ servers:
5
+ - server/mock_server.mmt
6
+ items:
7
+ - test/slow_timeout_test.mmt