├── code ├── .mvn │ ├── maven.config │ ├── jvm.config │ ├── settings.xml │ └── extensions.xml ├── boot │ └── src │ │ ├── test │ │ ├── resources │ │ │ ├── compose │ │ │ │ ├── amq │ │ │ │ │ └── .gitkeep │ │ │ │ ├── kafka │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── mariadb │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── data │ │ │ │ │ │ ├── 01-schemas.sql │ │ │ │ │ │ └── 02-tables.sql │ │ │ │ ├── mongodb │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── data │ │ │ │ │ │ └── 01.data.js │ │ │ │ ├── .gitignore │ │ │ │ ├── postgres │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── data │ │ │ │ │ │ ├── 01-schemas.sql │ │ │ │ │ │ └── 02-tables.sql │ │ │ │ ├── rabbitmq │ │ │ │ │ └── .gitkeep │ │ │ │ ├── zookeeper │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitkeep │ │ │ │ └── schema_registry │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── data │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── data-auth │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── schema_registry.users │ │ │ │ │ └── schema_registry.jaas │ │ │ ├── karate-config.js │ │ │ ├── scenarios │ │ │ │ └── db │ │ │ │ │ ├── JDBCClient-MariaDB.sql │ │ │ │ │ └── JDBCClient-PostgreSQL.sql │ │ │ ├── application-test-mvc.yml │ │ │ └── config │ │ │ │ ├── jms │ │ │ │ ├── activemq-config.yml │ │ │ │ └── rabbitmq-config.yml │ │ │ │ ├── db │ │ │ │ ├── postgresql-config.yml │ │ │ │ ├── mariadb-config.yml │ │ │ │ └── mongodb-config.yml │ │ │ │ └── kafka │ │ │ │ └── avro │ │ │ │ └── karate.avsc │ │ └── java │ │ │ └── dev │ │ │ └── inditex │ │ │ └── karate │ │ │ ├── jms │ │ │ └── JMSKarateObject.java │ │ │ └── docker │ │ │ └── DockerComposeTestConfiguration.java │ │ └── main │ │ ├── java │ │ └── dev │ │ │ └── inditex │ │ │ └── karate │ │ │ ├── config │ │ │ └── AppConfiguration.java │ │ │ └── controller │ │ │ └── RunningServiceDTO.java │ │ └── resources │ │ └── application.yml ├── runner │ └── src │ │ └── test │ │ └── resources │ │ ├── mocks │ │ └── templates │ │ │ ├── .gitkeep │ │ │ ├── empty-folder │ │ │ └── .gitkeep │ │ │ └── standalone │ │ │ └── xxx-api │ │ │ ├── XXXX_get_200.yml │ │ │ ├── XXXX_get_204.yml │ │ │ └── XXXX_post_201.yml │ │ ├── jwt │ │ ├── invalid-jwt.yml │ │ └── default-jwt.yml │ │ ├── karate-config.js │ │ ├── scenarios │ │ ├── openapi │ │ │ ├── with-mocks │ │ │ │ ├── mocks │ │ │ │ │ └── BasicApi │ │ │ │ │ │ ├── XXXX_get_204.yml │ │ │ │ │ │ └── XXXX_post_202.yml │ │ │ │ └── test-data │ │ │ │ │ └── op_201.yml │ │ │ ├── functional │ │ │ │ └── functional.feature │ │ │ └── smoke │ │ │ │ └── smoke.feature │ │ ├── karate-reports │ │ │ ├── reports-example-1.feature │ │ │ └── reports-example-2.feature │ │ ├── karate-stats │ │ │ └── stats.feature │ │ └── cache │ │ │ └── cache.feature │ │ ├── apis │ │ └── package │ │ │ └── tag │ │ │ └── ops │ │ │ ├── stats.feature │ │ │ ├── get.feature │ │ │ ├── op.feature │ │ │ ├── post.feature │ │ │ └── op-with-auth.feature │ │ └── stats │ │ ├── smoke.feature │ │ ├── smoke-02.feature │ │ ├── functional.feature │ │ └── functional-02.feature ├── .tool-versions ├── lombok.config ├── archetype │ └── src │ │ ├── test │ │ └── resources │ │ │ └── projects │ │ │ ├── default │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ ├── jms │ │ │ │ │ │ │ │ └── activemq-config-local.yml │ │ │ │ │ │ │ └── db │ │ │ │ │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ │ │ │ │ ├── postgresql-config-local.yml │ │ │ │ │ │ │ │ └── mongodb-config-local.yml │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── mypackage │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ ├── full │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ ├── jms │ │ │ │ │ │ │ │ └── activemq-config-local.yml │ │ │ │ │ │ │ └── db │ │ │ │ │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ │ │ │ │ ├── postgresql-config-local.yml │ │ │ │ │ │ │ │ └── mongodb-config-local.yml │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── inditex │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── it │ │ │ │ │ │ └── full │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ ├── jdbc │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── db │ │ │ │ │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ │ │ │ │ └── postgresql-config-local.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── inditex │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── it │ │ │ │ │ │ └── jdbc │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ ├── kafka │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── inditex │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── it │ │ │ │ │ │ └── kafka │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ ├── mongodb │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── db │ │ │ │ │ │ │ │ └── mongodb-config-local.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── inditex │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── it │ │ │ │ │ │ └── mongodb │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ ├── activemq │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ │ ├── src │ │ │ │ │ └── test │ │ │ │ │ │ ├── resources │ │ │ │ │ │ ├── mocks │ │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ ├── karate-config.js │ │ │ │ │ │ ├── config │ │ │ │ │ │ │ └── jms │ │ │ │ │ │ │ │ └── activemq-config-local.yml │ │ │ │ │ │ ├── jwt │ │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ │ └── config-local.yml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── dev │ │ │ │ │ │ └── inditex │ │ │ │ │ │ └── karate │ │ │ │ │ │ └── it │ │ │ │ │ │ └── activemq │ │ │ │ │ │ └── KarateRunnerTest.java │ │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ │ └── rabbitmq │ │ │ ├── goal.txt │ │ │ ├── reference │ │ │ ├── src │ │ │ │ └── test │ │ │ │ │ ├── resources │ │ │ │ │ ├── mocks │ │ │ │ │ │ └── templates │ │ │ │ │ │ │ └── standalone │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ ├── karate-config.js │ │ │ │ │ ├── jwt │ │ │ │ │ │ └── default-jwt.yml │ │ │ │ │ └── config-local.yml │ │ │ │ │ └── java │ │ │ │ │ └── dev │ │ │ │ │ └── inditex │ │ │ │ │ └── karate │ │ │ │ │ └── it │ │ │ │ │ └── activemq │ │ │ │ │ └── KarateRunnerTest.java │ │ │ └── .tool-versions │ │ │ └── archetype.properties │ │ └── main │ │ └── resources │ │ └── archetype-resources │ │ ├── src │ │ └── test │ │ │ ├── resources │ │ │ ├── mocks │ │ │ │ └── templates │ │ │ │ │ └── standalone │ │ │ │ │ └── .gitkeep │ │ │ ├── karate-config.js │ │ │ ├── config │ │ │ │ ├── jms │ │ │ │ │ ├── activemq-config-local.yml │ │ │ │ │ └── rabbitmq-config-local.yml │ │ │ │ └── db │ │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ │ ├── postgresql-config-local.yml │ │ │ │ │ └── mongodb-config-local.yml │ │ │ ├── jwt │ │ │ │ └── default-jwt.yml │ │ │ └── config-local.yml │ │ │ └── java │ │ │ └── KarateRunnerTest.java │ │ └── .tool-versions ├── generators │ └── src │ │ ├── test │ │ └── resources │ │ │ ├── openapi │ │ │ ├── unit │ │ │ │ ├── operation │ │ │ │ │ └── BasicApi │ │ │ │ │ │ ├── listItems │ │ │ │ │ │ └── schema │ │ │ │ │ │ │ ├── Items_200.schema.yml │ │ │ │ │ │ │ ├── listItems_400.schema.yml │ │ │ │ │ │ │ ├── listItems_default.schema.yml │ │ │ │ │ │ │ └── listItems_200.schema.yml │ │ │ │ │ │ ├── createItems │ │ │ │ │ │ └── schema │ │ │ │ │ │ │ ├── createItems_201.schema.yml │ │ │ │ │ │ │ ├── createItems_400.schema.yml │ │ │ │ │ │ │ └── createItems_default.schema.yml │ │ │ │ │ │ └── showItemById │ │ │ │ │ │ └── schema │ │ │ │ │ │ ├── showItemById_200.schema.yml │ │ │ │ │ │ ├── showItemById_404.schema.yml │ │ │ │ │ │ └── showItemById_default.schema.yml │ │ │ │ ├── schema │ │ │ │ │ ├── Composed │ │ │ │ │ │ ├── AnyOf │ │ │ │ │ │ │ └── expected.feature │ │ │ │ │ │ └── OneOf │ │ │ │ │ │ │ └── expected.feature │ │ │ │ │ ├── Circular │ │ │ │ │ │ └── expected.feature │ │ │ │ │ ├── ObjectsRequired │ │ │ │ │ │ └── expected.feature │ │ │ │ │ ├── SimpleOpenApi │ │ │ │ │ │ └── expected.feature │ │ │ │ │ ├── ObjectsOptional │ │ │ │ │ │ └── expected.feature │ │ │ │ │ ├── ObjectsEdgeCases │ │ │ │ │ │ └── expected.feature │ │ │ │ │ └── SpecificTypes │ │ │ │ │ │ └── expected.feature │ │ │ │ ├── data │ │ │ │ │ └── test-data │ │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ │ ├── showItemById_404.yml │ │ │ │ │ │ ├── showItemById_default.yml │ │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ │ ├── createItems_201.yml │ │ │ │ │ │ ├── listItems_default.yml │ │ │ │ │ │ └── createItems_default.yml │ │ │ │ ├── functional │ │ │ │ │ ├── showItemById │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ └── showItemById_200.yml │ │ │ │ │ │ └── showItemById.feature │ │ │ │ │ ├── CreateAndShowItem │ │ │ │ │ │ └── test-data │ │ │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ │ │ └── createItems_201.yml │ │ │ │ │ ├── CreateShowAndListItems │ │ │ │ │ │ └── test-data │ │ │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ │ │ └── createItems_201.yml │ │ │ │ │ ├── showItemByIdWithMultipleCodes │ │ │ │ │ │ └── test-data │ │ │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ │ │ └── showItemById_404.yml │ │ │ │ │ ├── listItems │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ └── listItems_200.yml │ │ │ │ │ │ └── listItems.feature │ │ │ │ │ ├── CreateItem │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ └── createItems_201.yml │ │ │ │ │ │ └── CreateItem.feature │ │ │ │ │ ├── createItems │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ └── createItems_201.yml │ │ │ │ │ │ └── createItems.feature │ │ │ │ │ ├── listItemsWithMultipleCodes │ │ │ │ │ │ └── test-data │ │ │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ │ │ └── listItems_400.yml │ │ │ │ │ └── createItemsWithMultipleCodes │ │ │ │ │ │ └── test-data │ │ │ │ │ │ ├── createItems_201.yml │ │ │ │ │ │ └── createItems_400.yml │ │ │ │ ├── mocks │ │ │ │ │ └── BasicApi │ │ │ │ │ │ ├── XXXX_listItems_200.yml │ │ │ │ │ │ ├── XXXX_listItems_400.yml │ │ │ │ │ │ ├── XXXX_listItems_default.yml │ │ │ │ │ │ ├── XXXX_showItemById_200.yml │ │ │ │ │ │ ├── XXXX_showItemById_404.yml │ │ │ │ │ │ ├── XXXX_showItemById_default.yml │ │ │ │ │ │ ├── XXXX_createItems_201.yml │ │ │ │ │ │ ├── XXXX_createItems_400.yml │ │ │ │ │ │ └── XXXX_createItems_default.yml │ │ │ │ ├── smoke │ │ │ │ │ └── BasicApi │ │ │ │ │ │ ├── showItemById │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ │ │ ├── showItemById_404.yml │ │ │ │ │ │ │ └── showItemById_default.yml │ │ │ │ │ │ └── showItemById.feature │ │ │ │ │ │ ├── listItems │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ │ │ ├── listItems_400.yml │ │ │ │ │ │ │ └── listItems_default.yml │ │ │ │ │ │ └── listItems.feature │ │ │ │ │ │ └── createItems │ │ │ │ │ │ ├── test-data │ │ │ │ │ │ ├── createItems_201.yml │ │ │ │ │ │ ├── createItems_400.yml │ │ │ │ │ │ └── createItems_default.yml │ │ │ │ │ │ └── createItems.feature │ │ │ │ ├── config │ │ │ │ │ ├── config-local-no-placeholder.yml │ │ │ │ │ ├── expected │ │ │ │ │ │ ├── config-local-no-placeholder.yml │ │ │ │ │ │ ├── config-no-urls.yml │ │ │ │ │ │ ├── config-local-empty-urls.yml │ │ │ │ │ │ ├── config-local.yml │ │ │ │ │ │ └── config-local-already-defined.yml │ │ │ │ │ ├── config-local-empty-urls.yml │ │ │ │ │ ├── config-local.yml │ │ │ │ │ ├── config-no-urls.yml │ │ │ │ │ ├── config-local-already-defined.yml │ │ │ │ │ └── config.yml │ │ │ │ └── mocks-inline │ │ │ │ │ └── createItemsWithInlineMocks │ │ │ │ │ ├── test-data │ │ │ │ │ └── createItems_201.yml │ │ │ │ │ └── mocks │ │ │ │ │ └── BasicApi │ │ │ │ │ └── XXXX_createItems_201.yml │ │ │ └── karatetools │ │ │ │ └── rest │ │ │ │ └── invalid │ │ │ │ └── invalid-openapi-rest.yml │ │ │ └── maven-model │ │ │ ├── pom-no-dependencies.xml │ │ │ └── pom-single-dependency.xml │ │ └── main │ │ ├── java │ │ └── dev │ │ │ └── inditex │ │ │ └── karate │ │ │ ├── openapi │ │ │ ├── OpenApiGeneratorCLI.java │ │ │ └── data │ │ │ │ └── Constants.java │ │ │ └── console │ │ │ └── ConsoleItem.java │ │ └── resources │ │ └── open-api-generator │ │ └── smoke-test-feature.template ├── src │ └── main │ │ └── config │ │ └── eclipse-java-google-style.importorder ├── .drafterconfig.yml └── clients │ └── src │ └── test │ ├── resources │ └── config │ │ └── kafka │ │ └── avro │ │ └── karate.avsc │ └── java │ └── dev │ └── inditex │ └── karate │ └── jms │ └── JMSKarateObject.java ├── docs ├── .tool-versions ├── .docsconfig.yml ├── src │ ├── modules │ │ ├── configuration │ │ │ ├── pages │ │ │ │ ├── index.adoc │ │ │ │ ├── urls.adoc │ │ │ │ ├── auth-types.adoc │ │ │ │ ├── logging.adoc │ │ │ │ ├── karate-config.adoc │ │ │ │ ├── auth-jwt-config.adoc │ │ │ │ ├── karate-config-js.adoc │ │ │ │ ├── urls-examples.adoc │ │ │ │ ├── auth-basic-config.adoc │ │ │ │ ├── auth.adoc │ │ │ │ ├── auth-jwt-errors.adoc │ │ │ │ ├── logging-config.adoc │ │ │ │ ├── urls-config.adoc │ │ │ │ ├── auth-basic-errors.adoc │ │ │ │ └── auth-basic.adoc │ │ │ ├── examples │ │ │ │ ├── auth-jwt-overwrite.yml │ │ │ │ ├── auth-basic-overwrite.yml │ │ │ │ ├── auth-jwt-settings.yml │ │ │ │ └── auth-basic-settings.yml │ │ │ └── images │ │ │ │ └── auth-error-example.png │ │ ├── execution │ │ │ ├── pages │ │ │ │ ├── index.adoc │ │ │ │ ├── karate-options-number-of-threads.adoc │ │ │ │ ├── report-cucumber-results-json.adoc │ │ │ │ ├── karate-options-tags-and-classpath.adoc │ │ │ │ ├── summary.adoc │ │ │ │ ├── report-surefire.adoc │ │ │ │ ├── report-karate-html.adoc │ │ │ │ └── karate-cache.adoc │ │ │ ├── images │ │ │ │ ├── karate-reports-surefire.png │ │ │ │ └── karate-reports-default-karate.png │ │ │ └── examples │ │ │ │ └── karate-operations-json.txt │ │ ├── clients │ │ │ ├── pages │ │ │ │ ├── jms-providers.adoc │ │ │ │ ├── index.adoc │ │ │ │ ├── jdbc-drivers.adoc │ │ │ │ ├── jdbc-pom.adoc │ │ │ │ ├── jms-pom.adoc │ │ │ │ ├── kafka-pom.adoc │ │ │ │ ├── mongodb-pom.adoc │ │ │ │ ├── jms-config-activemq.adoc │ │ │ │ ├── available-clients.adoc │ │ │ │ ├── mongodb.adoc │ │ │ │ ├── jms-config-rabbitmq.adoc │ │ │ │ ├── kafka.adoc │ │ │ │ ├── jdbc-summary.adoc │ │ │ │ └── jdbc-pom-add-driver.adoc │ │ │ └── examples │ │ │ │ ├── activemq-config-local.yml │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ ├── postgresql-config-local.yml │ │ │ │ ├── mongodb-config-local.yml │ │ │ │ ├── karatetools-pom.xml │ │ │ │ └── rabbitmq-config-local.yml │ │ ├── HOME │ │ │ └── images │ │ │ │ ├── dev.png │ │ │ │ ├── home.png │ │ │ │ ├── lab.png │ │ │ │ ├── logo.png │ │ │ │ ├── clients.png │ │ │ │ ├── favicon.ico │ │ │ │ ├── favicon.png │ │ │ │ ├── notes.png │ │ │ │ ├── toolbox.png │ │ │ │ ├── tools.png │ │ │ │ ├── training.png │ │ │ │ ├── integration.png │ │ │ │ └── karatetools.png │ │ ├── contributing │ │ │ ├── examples │ │ │ │ ├── e2e-karate-tree-callouts-java.txt │ │ │ │ ├── e2e-karate-tree-callouts-resources-apis.txt │ │ │ │ ├── e2e-karate-tree-callouts-resources-karate-tests.txt │ │ │ │ ├── e2e-karate-tree-callouts-resources-config.txt │ │ │ │ ├── e2e-karate-tree-callouts-resources-api-tests.txt │ │ │ │ ├── root-tree-callouts.txt │ │ │ │ ├── openapi-test-tree.txt │ │ │ │ ├── root-tree.txt │ │ │ │ ├── docs-tree.txt │ │ │ │ └── docs-tree-callouts.txt │ │ │ ├── pages │ │ │ │ ├── development-guide.adoc │ │ │ │ ├── step-by-step.adoc │ │ │ │ ├── step-by-step-introduction.adoc │ │ │ │ ├── karatetools-oss-starter.adoc │ │ │ │ ├── karatetools-oss-openapi-test.adoc │ │ │ │ └── karatetools-oss-generators.adoc │ │ │ └── images │ │ │ │ ├── karatetools-oss-open-api.png │ │ │ │ ├── steps-kt-oss-github-commit.png │ │ │ │ ├── steps-kt-oss-github-branches.png │ │ │ │ ├── steps-kt-oss-github-changelog.png │ │ │ │ ├── steps-kt-oss-mutation-report.png │ │ │ │ ├── karatetools-oss-localhost-8080.png │ │ │ │ ├── karatetools-oss-open-api-swager.png │ │ │ │ ├── steps-kt-oss-github-issue-types.png │ │ │ │ ├── steps-kt-oss-unit-jacoco-report.png │ │ │ │ ├── karatetools-oss-antora-npm-start.png │ │ │ │ ├── steps-kt-oss-github-issue-examples.png │ │ │ │ ├── steps-kt-oss-github-release-labels.png │ │ │ │ ├── steps-kt-oss-karate-jacoco-report.png │ │ │ │ ├── steps-kt-oss-karate-karate-report.png │ │ │ │ ├── steps-kt-oss-new-jms-client-config.png │ │ │ │ ├── steps-kt-oss-unit-surefire-report.png │ │ │ │ ├── steps-kt-oss-github-release-preview.png │ │ │ │ ├── steps-kt-oss-github-release-workflow.png │ │ │ │ ├── steps-kt-oss-new-jms-client-factory.png │ │ │ │ ├── steps-kt-oss-github-pull-request-checks.png │ │ │ │ ├── steps-kt-oss-github-sync-pull-request.png │ │ │ │ ├── steps-kt-oss-integration-jacoco-report.png │ │ │ │ ├── steps-kt-oss-github-release-pull-request.png │ │ │ │ ├── steps-kt-oss-integration-failsafe-report.png │ │ │ │ ├── steps-kt-oss-new-jms-client-documentation.png │ │ │ │ ├── steps-kt-oss-new-jms-client-ide-coverage.png │ │ │ │ ├── steps-kt-oss-new-jms-client-ide-mutation.png │ │ │ │ ├── steps-kt-oss-github-sync-docs-pull-request.png │ │ │ │ ├── steps-kt-oss-new-jms-client-ide-karate-tests.png │ │ │ │ ├── steps-kt-oss-new-jms-client-ide-unit-tests.png │ │ │ │ ├── steps-kt-oss-github-pull-request-checks-blocked.png │ │ │ │ ├── steps-kt-oss-new-jms-client-documentation-local.png │ │ │ │ ├── steps-kt-oss-new-jms-client-ide-integration-tests.png │ │ │ │ └── steps-kt-oss-new-jms-client-ide-mutation-report.png │ │ ├── archetype │ │ │ ├── images │ │ │ │ ├── archetype-output.png │ │ │ │ └── archetype-execution.png │ │ │ └── pages │ │ │ │ ├── 1-artifact-info.adoc │ │ │ │ └── 2-3-generate-archetype-exec.adoc │ │ ├── open-api-generator │ │ │ ├── examples │ │ │ │ ├── open-api-generator-rambo.txt │ │ │ │ ├── open-api-generator-mock.txt │ │ │ │ ├── open-api-generator-smoke.txt │ │ │ │ ├── open-api-generator-operations.txt │ │ │ │ ├── open-api-generator-functional.txt │ │ │ │ ├── open-api-generator-modes.txt │ │ │ │ ├── open-api-generator-mock-select.txt │ │ │ │ ├── open-api-generator-smoke-select.txt │ │ │ │ ├── open-api-generator-functional-select.txt │ │ │ │ ├── open-api-generator-operations-select.txt │ │ │ │ └── open-api-generator-rambo-select.txt │ │ │ ├── images │ │ │ │ ├── open-api-generator-cmd-api.png │ │ │ │ ├── open-api-generator-cmd-mock.png │ │ │ │ ├── open-api-generator-cmd-smoke.png │ │ │ │ ├── open-api-generator-cmd-inline.png │ │ │ │ ├── open-api-generator-cmd-methods.png │ │ │ │ ├── open-api-generator-mock-server.png │ │ │ │ ├── open-api-generator-cmd-api-manual.png │ │ │ │ ├── open-api-generator-cmd-artifact.png │ │ │ │ ├── open-api-generator-cmd-functional.png │ │ │ │ ├── open-api-generator-cmd-operations.png │ │ │ │ ├── open-api-generator-cmd-testname.png │ │ │ │ ├── open-api-generator-mock-process.png │ │ │ │ ├── open-api-generator-mock-template.png │ │ │ │ ├── open-api-generator-cmd-api-external.png │ │ │ │ ├── open-api-generator-cmd-inlinemocks.png │ │ │ │ ├── open-api-generator-cmd-responsecode.png │ │ │ │ ├── open-api-generator-cmd-artifact-mocks.png │ │ │ │ ├── open-api-generator-cmd-inline-artifact.png │ │ │ │ └── open-api-generator-cmd-inline-testname.png │ │ │ └── pages │ │ │ │ ├── configuration.adoc │ │ │ │ └── index.adoc │ │ ├── prerequisites │ │ │ └── pages │ │ │ │ ├── index.adoc │ │ │ │ ├── tools.adoc │ │ │ │ └── checklist.adoc │ │ └── overview │ │ │ └── pages │ │ │ ├── about.adoc │ │ │ ├── modules.adoc │ │ │ ├── index.adoc │ │ │ └── setup.adoc │ └── antora.yml ├── ui-bundle.zip ├── .gitignore └── supplemental-ui │ ├── img │ └── favicon.ico │ └── partials │ ├── footer-content.hbs │ ├── head-styles.hbs │ ├── head-scripts.hbs │ └── footer-scripts.hbs ├── .github ├── actions │ ├── config-resolver │ │ ├── .eslintignore │ │ ├── .gitignore │ │ ├── .tool-versions │ │ ├── .eslintrc.json │ │ └── src │ │ │ └── actionUtils.js │ └── test-results-verification │ │ └── .gitattributes ├── workflows │ ├── docs │ │ ├── docs-verify.md │ │ ├── docs-publish.md │ │ ├── docs-release.md │ │ ├── docs-build_snapshot.md │ │ └── code-PR_sync_to_develop.md │ └── code-PR_verify-fallback.yml └── ISSUE_TEMPLATE │ ├── bug-issue.md │ └── feature-issue.md ├── e2e └── karate │ ├── src │ └── test │ │ ├── resources │ │ ├── mocks │ │ │ └── templates │ │ │ │ └── standalone │ │ │ │ └── .gitkeep │ │ ├── jwt │ │ │ ├── invalid-jwt.yml │ │ │ └── default-jwt.yml │ │ ├── karate-config.js │ │ ├── apis │ │ │ └── dev │ │ │ │ └── inditex │ │ │ │ └── karate │ │ │ │ └── karatetools-openapi-test │ │ │ │ └── xxx-api-rest-stable │ │ │ │ └── BasicApi │ │ │ │ ├── listItems │ │ │ │ └── schema │ │ │ │ │ ├── Items_200.schema.yml │ │ │ │ │ ├── listItems_400.schema.yml │ │ │ │ │ ├── listItems_401.schema.yml │ │ │ │ │ ├── listItems_default.schema.yml │ │ │ │ │ └── listItems_200.schema.yml │ │ │ │ ├── createItems │ │ │ │ └── schema │ │ │ │ │ ├── createItems_201.schema.yml │ │ │ │ │ ├── createItems_400.schema.yml │ │ │ │ │ ├── createItems_401.schema.yml │ │ │ │ │ └── createItems_default.schema.yml │ │ │ │ ├── showItemById │ │ │ │ └── schema │ │ │ │ │ ├── showItemById_200.schema.yml │ │ │ │ │ ├── showItemById_401.schema.yml │ │ │ │ │ ├── showItemById_404.schema.yml │ │ │ │ │ └── showItemById_default.schema.yml │ │ │ │ └── deleteAllItems │ │ │ │ └── schema │ │ │ │ └── deleteAllItems_401.schema.yml │ │ ├── dev │ │ │ └── inditex │ │ │ │ └── karate │ │ │ │ ├── clients │ │ │ │ └── db │ │ │ │ │ ├── JDBCClient-MariaDB.sql │ │ │ │ │ └── JDBCClient-PostgreSQL.sql │ │ │ │ └── karatetools-openapi-test │ │ │ │ └── xxx-api-rest-stable │ │ │ │ ├── common │ │ │ │ └── reset │ │ │ │ │ └── test-data │ │ │ │ │ ├── deleteAllItems_204.yml │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ └── createItems_201.yml │ │ │ │ ├── functional │ │ │ │ └── e2e │ │ │ │ │ └── test-data │ │ │ │ │ ├── deleteAllItems_204.yml │ │ │ │ │ ├── createItems_400.yml │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ ├── listItems_400.yml │ │ │ │ │ ├── showItemById_200.yml │ │ │ │ │ ├── showItemById_404.yml │ │ │ │ │ ├── createItems_201.yml │ │ │ │ │ ├── listItems_401.yml │ │ │ │ │ ├── deleteAllItems_401.yml │ │ │ │ │ ├── showItemById_401.yml │ │ │ │ │ └── createItems_401.yml │ │ │ │ └── smoke │ │ │ │ └── BasicApi │ │ │ │ ├── deleteAllItems │ │ │ │ └── test-data │ │ │ │ │ ├── deleteAllItems_204.yml │ │ │ │ │ └── deleteAllItems_401.yml │ │ │ │ ├── listItems │ │ │ │ └── test-data │ │ │ │ │ ├── listItems_200.yml │ │ │ │ │ ├── listItems_400.yml │ │ │ │ │ └── listItems_401.yml │ │ │ │ ├── createItems │ │ │ │ └── test-data │ │ │ │ │ ├── createItems_400.yml │ │ │ │ │ ├── createItems_201.yml │ │ │ │ │ └── createItems_401.yml │ │ │ │ └── showItemById │ │ │ │ └── test-data │ │ │ │ ├── showItemById_200.yml │ │ │ │ ├── showItemById_404.yml │ │ │ │ └── showItemById_401.yml │ │ ├── config │ │ │ ├── jms │ │ │ │ ├── activemq-config-local.yml │ │ │ │ └── rabbitmq-config-local.yml │ │ │ ├── db │ │ │ │ ├── mariadb-config-local.yml │ │ │ │ ├── postgresql-config-local.yml │ │ │ │ └── mongodb-config-local.yml │ │ │ └── kafka │ │ │ │ └── avro │ │ │ │ └── karate.avsc │ │ └── config-local.yml │ │ └── java │ │ └── dev │ │ └── inditex │ │ └── karate │ │ └── karatetools │ │ ├── jms │ │ └── JMSKarateObject.java │ │ └── test │ │ └── KarateRunnerTest.java │ └── .tool-versions ├── .gitattributes ├── SUPPORT.md ├── .gitignore └── CONTRIBUTING.md /code/.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -U 2 | -------------------------------------------------------------------------------- /docs/.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 18.12.1 2 | -------------------------------------------------------------------------------- /.github/actions/config-resolver/.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/amq/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/kafka/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/mariadb/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/mongodb/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/.gitignore: -------------------------------------------------------------------------------- 1 | /*.log 2 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/kafka/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/postgres/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/rabbitmq/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/zookeeper/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/mocks/templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/.docsconfig.yml: -------------------------------------------------------------------------------- 1 | release: 2 | version: 5.2.0 3 | -------------------------------------------------------------------------------- /.github/actions/config-resolver/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/schema_registry/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/zookeeper/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/actions/config-resolver/.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 20.10.0 2 | -------------------------------------------------------------------------------- /code/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/schema_registry/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/lombok.config: -------------------------------------------------------------------------------- 1 | lombok.addLombokGeneratedAnnotation = true 2 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/mocks/templates/empty-folder/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/actions/test-results-verification/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sh text eol=lf -------------------------------------------------------------------------------- /.github/workflows/docs/docs-verify.md: -------------------------------------------------------------------------------- 1 | # TO BE COMPLETED (docs-verify) 2 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/schema_registry/data-auth/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /e2e/karate/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /.github/workflows/docs/docs-publish.md: -------------------------------------------------------------------------------- 1 | # TO BE COMPLETED (docs-publish) 2 | -------------------------------------------------------------------------------- /.github/workflows/docs/docs-release.md: -------------------------------------------------------------------------------- 1 | # TO BE COMPLETED (docs-release) 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/goal.txt: -------------------------------------------------------------------------------- 1 | clean validate 2 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/postgres/data/01-schemas.sql: -------------------------------------------------------------------------------- 1 | -- SCHEMAS 2 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/runner/src/test/resources/jwt/invalid-jwt.yml: -------------------------------------------------------------------------------- 1 | headers: 2 | alg: HS256B 3 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/jwt/invalid-jwt.yml: -------------------------------------------------------------------------------- 1 | headers: 2 | alg: HS256B 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/mariadb/data/01-schemas.sql: -------------------------------------------------------------------------------- 1 | -- SCHEMAS 2 | 3 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /.github/workflows/docs/docs-build_snapshot.md: -------------------------------------------------------------------------------- 1 | # TO BE COMPLETED (docs-build_snapshot) 2 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Configuration 2 | 3 | include::summary.adoc[] 4 | -------------------------------------------------------------------------------- /docs/ui-bundle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/ui-bundle.zip -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Karate Tools Execution 2 | 3 | include::summary.adoc[] 4 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/src/test/resources/mocks/templates/standalone/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/schema_registry/schema_registry.users: -------------------------------------------------------------------------------- 1 | schemaregistry:schemaregistry-pwd,karate 2 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/examples/auth-jwt-overwrite.yml: -------------------------------------------------------------------------------- 1 | auth: 2 | authMode: 'jwt' 3 | username: 'usernameA' 4 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/.tool-versions: -------------------------------------------------------------------------------- 1 | maven 3.9.4 2 | java temurin-21.0.4+7.0.LTS 3 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /node_modules 3 | /public 4 | .DS_Store 5 | antora-playbook.temp.yml 6 | antora-playbook-pr.yml 7 | -------------------------------------------------------------------------------- /code/.mvn/jvm.config: -------------------------------------------------------------------------------- 1 | --add-opens java.base/sun.reflect.annotation=ALL-UNNAMED 2 | --add-opens java.base/java.util=ALL-UNNAMED 3 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jms-providers.adoc: -------------------------------------------------------------------------------- 1 | * xref:#jms-client-configuration-properties-apache-active-mq[Apache Active MQ] 2 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/src/test/resources/karate-config.js: -------------------------------------------------------------------------------- 1 | function fn(){ 2 | return {} 3 | } -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/dev.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/home.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/lab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/lab.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/logo.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/e2e-karate-tree-callouts-java.txt: -------------------------------------------------------------------------------- 1 | <1> JMS Object for testing purposes 2 | <2> Java Test Runner 3 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/development-guide.adoc: -------------------------------------------------------------------------------- 1 | = Development Guide 2 | 3 | == Overview 4 | 5 | include::overview.adoc[] 6 | -------------------------------------------------------------------------------- /docs/supplemental-ui/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/supplemental-ui/img/favicon.ico -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/clients.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/clients.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/favicon.ico -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/favicon.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/notes.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/toolbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/toolbox.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/tools.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/training.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/training.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/integration.png -------------------------------------------------------------------------------- /docs/src/modules/HOME/images/karatetools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/HOME/images/karatetools.png -------------------------------------------------------------------------------- /docs/supplemental-ui/partials/footer-content.hbs: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/listItems/schema/Items_200.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/examples/auth-basic-overwrite.yml: -------------------------------------------------------------------------------- 1 | auth: 2 | authMode: 'basic' 3 | username: 'username100' 4 | password: 'password100x' 5 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/urls.adoc: -------------------------------------------------------------------------------- 1 | = Environment URLs 2 | 3 | include::urls-config.adoc[] 4 | 5 | == Example 6 | 7 | include::urls-examples.adoc[] 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/createItems/schema/createItems_201.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/listItems/schema/listItems_400.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/showItemById/schema/showItemById_200.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /docs/src/antora.yml: -------------------------------------------------------------------------------- 1 | name: karatetools-oss 2 | title: InditexTech Karate Tools 3 | prerelease: true 4 | start_page: HOME:index.adoc 5 | nav: 6 | - modules/HOME/nav.adoc 7 | -------------------------------------------------------------------------------- /docs/src/modules/archetype/images/archetype-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/archetype/images/archetype-output.png -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/createItems/schema/createItems_400.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/listItems/schema/listItems_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /docs/src/modules/archetype/images/archetype-execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/archetype/images/archetype-execution.png -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/createItems/schema/createItems_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/showItemById/schema/showItemById_404.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/showItemById/schema/showItemById_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/images/auth-error-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/configuration/images/auth-error-example.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-rambo.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) Open Api Rambo 2 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Karate Clients 2 | 3 | The Tools provided to interact with different systems/applications are: 4 | 5 | include::available-clients.adoc[] 6 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jdbc-drivers.adoc: -------------------------------------------------------------------------------- 1 | * xref:#jdbc-client-configuration-properties-mariadb[Maria DB] 2 | * xref:#jdbc-client-configuration-properties-postgresql[PostgreSQL] 3 | -------------------------------------------------------------------------------- /docs/src/modules/execution/images/karate-reports-surefire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/execution/images/karate-reports-surefire.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-mock.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) Open Api Mock Data 2 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-smoke.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) Open Api Smoke Tests 2 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/karatetools-oss-open-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/karatetools-oss-open-api.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-operations.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) Open Api Operations 2 | -------------------------------------------------------------------------------- /docs/supplemental-ui/partials/head-styles.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /code/src/main/config/eclipse-java-google-style.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | #Mon Sep 20 12:54:41 CEST 2021 3 | 0=\#java 4 | 1=\#dev.inditex 5 | 2=\# 6 | 3=java 7 | 4=dev.inditex 8 | 5= 9 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-commit.png -------------------------------------------------------------------------------- /docs/src/modules/execution/images/karate-reports-default-karate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/execution/images/karate-reports-default-karate.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-functional.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) Open Api Functional Test 2 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-branches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-branches.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-changelog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-changelog.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-mutation-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-mutation-report.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/Items_200.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/karatetools-oss-localhost-8080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/karatetools-oss-localhost-8080.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/karatetools-oss-open-api-swager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/karatetools-oss-open-api-swager.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-issue-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-issue-types.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-unit-jacoco-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-unit-jacoco-report.png -------------------------------------------------------------------------------- /code/boot/src/test/resources/scenarios/db/JDBCClient-MariaDB.sql: -------------------------------------------------------------------------------- 1 | TRUNCATE TABLE DATA; 2 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-01', 1); 3 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-02', 2); 4 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/scenarios/db/JDBCClient-PostgreSQL.sql: -------------------------------------------------------------------------------- 1 | TRUNCATE TABLE DATA; 2 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-01', 1); 3 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-02', 2); 4 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/mocks/templates/standalone/xxx-api/XXXX_get_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "get" 3 | method: "GET" 4 | path: "/get" 5 | params: null 6 | request: "#ignore" 7 | responseStatus: 200 8 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-types.adoc: -------------------------------------------------------------------------------- 1 | 🔐 `basic`:: see xref:configuration:auth-basic.adoc[Basic Authentication]. 2 | 3 | 🔐 `jwt`:: see xref:configuration:auth-jwt.adoc[JWT Authentication]. 4 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/karatetools-oss-antora-npm-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/karatetools-oss-antora-npm-start.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-issue-examples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-issue-examples.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-release-labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-release-labels.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-karate-jacoco-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-karate-jacoco-report.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-karate-karate-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-karate-karate-report.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-config.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-unit-surefire-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-unit-surefire-report.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-api.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-mock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-mock.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-smoke.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_201.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_200.schema.yml: -------------------------------------------------------------------------------- 1 | name: "#string" 2 | id: "#number" 3 | tag: "##string" 4 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/postgres/data/02-tables.sql: -------------------------------------------------------------------------------- 1 | -- TABLES 2 | CREATE TABLE DATA 3 | ( 4 | ID SERIAL, 5 | NAME VARCHAR (255) NOT NULL, 6 | VALUE INT NOT NULL, 7 | PRIMARY KEY (ID) 8 | ); 9 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/schema_registry/schema_registry.jaas: -------------------------------------------------------------------------------- 1 | karate { 2 | org.eclipse.jetty.jaas.spi.PropertyFileLoginModule required 3 | file="/etc/schema_registry/schema_registry.users"; 4 | }; 5 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-release-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-release-preview.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-release-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-release-workflow.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-factory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-factory.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-methods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-methods.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-mock-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-mock-server.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_400.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_401.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_400.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_401.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/operation/BasicApi/listItems/schema/listItems_200.schema.yml: -------------------------------------------------------------------------------- 1 | "#[] read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/Items_200.schema.yml')" 2 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/mocks/templates/standalone/xxx-api/XXXX_get_204.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "get" 3 | method: "GET" 4 | path: "/get/{param}" 5 | params: null 6 | request: "#ignore" 7 | responseStatus: 204 8 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/mocks/templates/standalone/xxx-api/XXXX_post_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "post" 3 | method: "POST" 4 | path: "/post" 5 | params: "#string" 6 | request: "#ignore" 7 | responseStatus: 201 8 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/openapi/with-mocks/mocks/BasicApi/XXXX_get_204.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "get" 3 | method: "GET" 4 | path: "/get" 5 | params: null 6 | request: "#ignore" 7 | responseStatus: 204 8 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-pull-request-checks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-pull-request-checks.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-sync-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-sync-pull-request.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-integration-jacoco-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-integration-jacoco-report.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-api-manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-api-manual.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-artifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-artifact.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-functional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-functional.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-operations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-operations.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-testname.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-testname.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-mock-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-mock-process.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-mock-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-mock-template.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_401.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_404.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-release-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-release-pull-request.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-integration-failsafe-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-integration-failsafe-report.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-documentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-documentation.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-coverage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-coverage.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-mutation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-mutation.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-api-external.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-api-external.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-inlinemocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-inlinemocks.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-responsecode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-responsecode.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/deleteAllItems/schema/deleteAllItems_401.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_default.schema.yml: -------------------------------------------------------------------------------- 1 | stack: "##string" 2 | code: "#number" 3 | message: "#string" 4 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/clients/db/JDBCClient-MariaDB.sql: -------------------------------------------------------------------------------- 1 | TRUNCATE TABLE DATA; 2 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-01', 1); 3 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-02', 2); 4 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/openapi/with-mocks/mocks/BasicApi/XXXX_post_202.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "post" 3 | method: "POST" 4 | path: "/post" 5 | params: "#string" 6 | request: "#ignore" 7 | responseStatus: 202 8 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-sync-docs-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-sync-docs-pull-request.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-karate-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-karate-tests.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-unit-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-unit-tests.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-artifact-mocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-artifact-mocks.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline-artifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline-artifact.png -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline-testname.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/open-api-generator/images/open-api-generator-cmd-inline-testname.png -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/clients/db/JDBCClient-PostgreSQL.sql: -------------------------------------------------------------------------------- 1 | TRUNCATE TABLE DATA; 2 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-01', 1); 3 | INSERT INTO DATA (NAME, VALUE) VALUES ('karate-02', 2); 4 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/application-test-mvc.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | docker: 3 | compose: 4 | # spring.docker.compose.enabled: Whether docker compose support is enabled. 5 | # Default: true 6 | enabled: false 7 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/logging.adoc: -------------------------------------------------------------------------------- 1 | = Logging 2 | 3 | include::logging-config.adoc[] 4 | 5 | == Examples 6 | 7 | [source,xml,subs="+attributes"] 8 | ---- 9 | include::example$logback-test.xml[] 10 | ---- 11 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/mariadb/data/02-tables.sql: -------------------------------------------------------------------------------- 1 | -- TABLES 2 | CREATE TABLE DATA 3 | ( 4 | ID INTEGER NOT NULL AUTO_INCREMENT, 5 | NAME VARCHAR (255) NOT NULL, 6 | VALUE INTEGER NOT NULL, 7 | PRIMARY KEY (ID) 8 | ); 9 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-github-pull-request-checks-blocked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-github-pull-request-checks-blocked.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-documentation-local.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-documentation-local.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-integration-tests.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-integration-tests.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-mutation-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InditexTech/karatetools-oss/HEAD/docs/src/modules/contributing/images/steps-kt-oss-new-jms-client-ide-mutation-report.png -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/step-by-step.adoc: -------------------------------------------------------------------------------- 1 | = Step by Step 2 | 3 | == Introduction 4 | 5 | include::step-by-step-introduction.adoc[] 6 | 7 | == karatetools-oss 8 | 9 | include::step-by-step-karatetools-oss.adoc[] 10 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/e2e-karate-tree-callouts-resources-apis.txt: -------------------------------------------------------------------------------- 1 | <1> root folder for the *operations* 2 | <2> *api tag* folder 3 | <3> *operation* folder 4 | <4> *operation* feature file 5 | <5> *operation* validation schemas 6 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/karate-config.adoc: -------------------------------------------------------------------------------- 1 | = Karate config 2 | 3 | == karate-config.js / karate-config-.js 4 | 5 | include::karate-config-js.adoc[] 6 | 7 | == config.yml / config-.yml 8 | 9 | include::karate-config-yml.adoc[] 10 | -------------------------------------------------------------------------------- /docs/src/modules/prerequisites/pages/index.adoc: -------------------------------------------------------------------------------- 1 | :page-role: -toc 2 | 3 | = Prerequisites 4 | 5 | == Tools Requirements 6 | 7 | include::tools.adoc[] 8 | 9 | == Minimum checklist before starting with Karate Tools 10 | 11 | include::checklist.adoc[] 12 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/Composed/AnyOf/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "name" : "string" 7 | } 8 | """ 9 | * match result == 10 | """ 11 | "#object" 12 | """ 13 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/Composed/OneOf/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "name" : "string" 7 | } 8 | """ 9 | * match result == 10 | """ 11 | "#object" 12 | """ 13 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/apis/package/tag/ops/stats.feature: -------------------------------------------------------------------------------- 1 | @ignore 2 | @op.stats 3 | 4 | Feature: Stats Test Operation 5 | 6 | Background: 7 | 8 | Scenario: print 9 | * def req = __arg 10 | 11 | * print 'stats test:', req 12 | 13 | * def result = 'ok' -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-modes.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | > Open Api Operations 3 | Open Api Smoke Tests 4 | Open Api Functional Test 5 | Open Api Mock Data 6 | -------------------------------------------------------------------------------- /docs/supplemental-ui/partials/head-scripts.hbs: -------------------------------------------------------------------------------- 1 | {{!-- 2 | 3 | --}} 4 | 5 | 6 | -------------------------------------------------------------------------------- /code/.mvn/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | central 5 | ${env.MAVEN_CENTRAL_USERNAME} 6 | ${env.MAVEN_CENTRAL_PASSWORD} 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-mock-select.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | Open Api Operations 3 | Open Api Smoke Tests 4 | Open Api Functional Test 5 | > Open Api Mock Data 6 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-smoke-select.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | Open Api Operations 3 | > Open Api Smoke Tests 4 | Open Api Functional Test 5 | Open Api Mock Data 6 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/common/reset/test-data/deleteAllItems_204.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "deleteAllItems" 3 | statusCode: 204 4 | params: null 5 | body: null 6 | matchResponse: true 7 | responseMatches: null 8 | -------------------------------------------------------------------------------- /code/.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/jms/activemq-config.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: karate 6 | password: karate-pwd 7 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/apis/package/tag/ops/get.feature: -------------------------------------------------------------------------------- 1 | @ignore 2 | @op.get 3 | 4 | Feature: GET Test Operation 5 | 6 | Background: 7 | * url urls.xxxApiRestStableUrl 8 | 9 | Scenario: get 10 | * def req = __arg 11 | 12 | Given path '/get' 13 | When method GET 14 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/apis/package/tag/ops/op.feature: -------------------------------------------------------------------------------- 1 | @ignore 2 | @op.op 3 | 4 | Feature: Test Operation 5 | 6 | Background: 7 | * url urls.xxxApiRestStableUrl 8 | 9 | Scenario: print 10 | * def req = __arg 11 | * karate.logger.debug('req=', req) 12 | * def res = req -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: karate 6 | password: karate-pwd 7 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-functional-select.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | Open Api Operations 3 | Open Api Smoke Tests 4 | > Open Api Functional Test 5 | Open Api Mock Data 6 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-operations-select.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | > Open Api Operations 3 | Open Api Smoke Tests 4 | Open Api Functional Test 5 | Open Api Mock Data 6 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/deleteAllItems_204.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "deleteAllItems" 3 | statusCode: 204 4 | params: null 5 | body: null 6 | matchResponse: true 7 | responseMatches: null 8 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_200.schema.yml: -------------------------------------------------------------------------------- 1 | "#[] read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/Items_200.schema.yml')" 2 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/jms/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: karate 6 | password: karate-pwd 7 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/examples/auth-jwt-settings.yml: -------------------------------------------------------------------------------- 1 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 2 | defaultAuthMode: jwt 3 | # defaultUsername: default username. 'auth.username' when used in a specific request. 4 | defaultUsername: username100 5 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/step-by-step-introduction.adoc: -------------------------------------------------------------------------------- 1 | This section provides a step-by-step guide to contributing to the Karate Tools. 2 | 3 | It is intended to help you get started with the project and to provide you with a clear path to follow as you work on your contribution. 4 | -------------------------------------------------------------------------------- /SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | ## How to file issues and get help 4 | 5 | This project uses GitHub Issues to track bugs and feature requests. Please search the existing 6 | issues before filing new issues to avoid duplicates. For new issues, file your bug or 7 | feature request as a new Issue. 8 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/examples/open-api-generator-rambo-select.txt: -------------------------------------------------------------------------------- 1 | ? Enter Open Api Generator Mode (Operations / Smoke Tests / Functional Test / Mock Data) 2 | Open Api Operations 3 | Open Api Smoke Tests 4 | Open Api Functional Test 5 | Open Api Mock Data 6 | > Open Api Rambo 7 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/deleteAllItems/test-data/deleteAllItems_204.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "deleteAllItems" 3 | statusCode: 204 4 | params: null 5 | body: null 6 | matchResponse: true 7 | responseMatches: null 8 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-jwt-config.adoc: -------------------------------------------------------------------------------- 1 | The default settings for JWT authentication are: 2 | 3 | * `defaultAuthMode`: `jwt` 4 | ** `auth.authMode` when used in a specific request. 5 | 6 | * `defaultUsername`: default username. 7 | ** `auth.username` when used in a specific request. 8 | -------------------------------------------------------------------------------- /.github/workflows/code-PR_verify-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: code-PR-verify-fallback 3 | 4 | on: 5 | pull_request: 6 | 7 | jobs: 8 | unit-tests: 9 | if: 'false' 10 | name: Code / Verify 11 | runs-on: ubuntu-24.04 12 | steps: 13 | - run: 'echo "No Code / Verify required"' 14 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/apis/package/tag/ops/post.feature: -------------------------------------------------------------------------------- 1 | @ignore 2 | @op.post 3 | 4 | Feature: POST Test Operation 5 | 6 | Background: 7 | * url urls.xxxApiRestStableUrl 8 | 9 | Scenario: post 10 | * def req = __arg 11 | 12 | Given path '/post' 13 | And request req 14 | When method POST 15 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/karatetools/rest/invalid/invalid-openapi-rest.yml: -------------------------------------------------------------------------------- 1 | # openapi: 3.0.0 2 | info: 3 | title: KarateTools Open Api - Invalid 4 | version: 1.0.0 5 | contact: 6 | name: Karate Tools 7 | email: karate-tools@inditex.com 8 | description: KarateTools Open Api - Invalid 9 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/e2e-karate-tree-callouts-resources-karate-tests.txt: -------------------------------------------------------------------------------- 1 | <1> Authentication tests 2 | <2> Karate Base tests 3 | <3> Karate Clients tests 4 | <4> Karate Clients tests: *db* 5 | <5> Karate Clients tests: *jms* 6 | <6> Karate Clients tests: *kafka* 7 | <7> Karate Clients tests: *mongodb* 8 | -------------------------------------------------------------------------------- /docs/src/modules/prerequisites/pages/tools.adoc: -------------------------------------------------------------------------------- 1 | The tools requirements to be working with Karate Tools are: 2 | 3 | . https://git-scm.com/about[*Git*, window=_blank] 4 | . https://www.java.com/es/download/[*Java 21*, window=_blank] 5 | . https://maven.apache.org/download.cgi[*Maven*, window=_blank] (v3.9.4 or higher) 6 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config/jms/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: admin 6 | password: password 7 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/config/jms/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: admin 6 | password: password 7 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/resources/config/jms/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: admin 6 | password: password 7 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/config/jms/activemq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: ActiveMQ 4 | brokerURL: tcp://localhost:61616 5 | username: admin 6 | password: password 7 | -------------------------------------------------------------------------------- /code/boot/src/main/java/dev/inditex/karate/config/AppConfiguration.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | 5 | /** 6 | * The Class AppConfiguration. 7 | */ 8 | @Configuration(proxyBeanMethods = false) 9 | public class AppConfiguration { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 404 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_404.schema.yml'))" 9 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/karate-config-js.adoc: -------------------------------------------------------------------------------- 1 | Karate first will look for *`karate-config.js`* and it will process it. 2 | 3 | If the `karate.env` property is set and the over-ride *`karate-config-.js`* exists, it will be processed, and the configuration returned by this function will over-ride any set by `karate-config.js` 4 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/showItemById_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: null 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_default.schema.yml'))" 9 | -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/KARATE 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/e2e-karate-tree-callouts-resources-config.txt: -------------------------------------------------------------------------------- 1 | <1> Karate clients config files (db, jms, kafka) 2 | <2> Configuration Files (general and environment specific) 3 | <3> Karate Authentication JWT Files (default and test specific) 4 | <4> Karate-config files 5 | <5> logback configuration files 6 | <6> karate mocks folder 7 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/karatetools-oss-starter.adoc: -------------------------------------------------------------------------------- 1 | The `karatetools-oss-starter` module is a `packaging` module that includes the dependencies needed for a karate project to be able to use the karate tools, `karatetools-oss-clients`, `karatetools-oss-generators` and `karatetools-oss-runner` modules as well as any other necessary dependencies. 2 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/showItemById/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | method: "GET" 4 | path: "/items" 5 | params: "limit=0" 6 | request: null 7 | responseStatus: 200 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | - id: 0 12 | name: "string" 13 | tag: "string" 14 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/karate-reports/reports-example-1.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @generate-reports 3 | @generate-reports-success 4 | 5 | Feature: reports-example-1 6 | Scenario: reports-scenario-1-1 7 | * print 'karate.info is: ', karate.info 8 | 9 | Scenario: reports-scenario-1-2 10 | * print 'karate.info is: ', karate.info 11 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/db/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/KARATE 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Use this template to report a bug 4 | title: '' 5 | labels: kind/bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Detailed description 11 | 12 | A clear and concise description of what the problem is. 13 | 14 | ### Expected behaviour 15 | 16 | Expected behaviour one the problem is fixed. -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateAndShowItem/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_listItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | method: "GET" 4 | path: "/items" 5 | params: "limit=0" 6 | request: null 7 | responseStatus: 400 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | code: 0 12 | message: "string" 13 | stack: "string" 14 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/showItemById/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/showItemById/test-data/showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 404 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_404.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/karate-stats/stats.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @karate-stats 3 | @functional 4 | @op.stats 5 | 6 | Feature: ops-stats 7 | 8 | Background: 9 | 10 | Scenario: stats 11 | Given def req = {} 12 | When def res = call read('classpath:apis/package/tag/ops/stats.feature') req 13 | Then match res.result == 'ok' 14 | 15 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/src/test/resources/jwt/default-jwt.yml: -------------------------------------------------------------------------------- 1 | secret: 'aaaa1111-bb22-cc33-dd44-eeeeee555555' 2 | headers: 3 | alg: 'HS256' 4 | kid: 'test' 5 | typ: 'JWT' 6 | payloads: 7 | id: '1234' 8 | sub: 'username' 9 | iss: 'https://www.inditex.com/jwt-token' 10 | exp: 2147483647 11 | iat: 1704067200 12 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/db/postgresql-config.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/KARATE 4 | driver-class-name: org.postgresql.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateShowAndListItems/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_listItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | method: "GET" 4 | path: "/items" 5 | params: "limit=0" 6 | request: null 7 | responseStatus: null 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | code: 0 12 | message: "string" 13 | stack: "string" 14 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | method: "GET" 4 | path: "/items/{itemId}" 5 | params: null 6 | request: null 7 | responseStatus: 200 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | id: 0 12 | name: "string" 13 | tag: "string" 14 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/stats/smoke.feature: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.op 3 | 4 | Feature: op Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: op 9 | * def req = { status : '' } 10 | * def result = call read('classpath:apis/package/tag/op/op.feature') req 11 | Examples: 12 | | status | 13 | | 201 | 14 | | 400 | 15 | | default | 16 | -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/KARATE 4 | driver-class-name: org.postgresql.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | method: "GET" 4 | path: "/items/{itemId}" 5 | params: null 6 | request: null 7 | responseStatus: 404 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | code: 0 12 | message: "string" 13 | stack: "string" 14 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/showItemById/test-data/showItemById_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: null 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_default.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/stats/smoke-02.feature: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.op 3 | 4 | Feature: op Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: op 9 | * def req = { status : '' } 10 | * def result = call read('classpath:apis/package/tag/op/op.feature') req 11 | Examples: 12 | | status | 13 | | 201 | 14 | | 400 | 15 | | default | 16 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/db/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/KARATE 4 | driver-class-name: org.postgresql.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/db/mariadb-config.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:mariadb://localhost:3306/KARATE 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: karate 6 | password: karate-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config-local-no-placeholder.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | 6 | # defaultUsername: default username 7 | # defaultAuthMode: basic | janus | jwt | openAM 8 | # credentials: pairs of username: password 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_200.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/showItemByIdWithMultipleCodes/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/showItemByIdWithMultipleCodes/test-data/showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 404 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/schema/showItemById_404.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_showItemById_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | method: "GET" 4 | path: "/items/{itemId}" 5 | params: null 6 | request: null 7 | responseStatus: null 8 | responseHeaders: 9 | Content-Type: "application/json" 10 | response: 11 | code: 0 12 | message: "string" 13 | stack: "string" 14 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/e2e-karate-tree-callouts-resources-api-tests.txt: -------------------------------------------------------------------------------- 1 | <1> root folder for the *rest api* test 2 | <2> root folder for the *functional rest api* tests 3 | <3> specific functional test folder 4 | <4> feature file 5 | <5> test data files 6 | <6> root folder for the *smoke rest api* tests 7 | <7> *api tag* folder 8 | <8> smoke tests *operation* folder 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/openapi/with-mocks/test-data/op_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/expected/config-local-no-placeholder.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | 6 | # defaultUsername: default username 7 | # defaultAuthMode: basic | janus | jwt | openAM 8 | # credentials: pairs of username: password 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/listItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: null 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_default.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/karate-options-number-of-threads.adoc: -------------------------------------------------------------------------------- 1 | * Execute tests with a specified *number of threads* using `karate.options` `--threads` 2 | + 3 | [source,bash,subs="+attributes"] 4 | ---- 5 | mvn clean test -Dkarate.options="... --threads XX ..." 6 | ---- 7 | + 8 | NOTE: default number of threads = 1, the custom number of threads is capped up to `number of cores / 2` 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea/feature for this project 4 | title: '' 5 | labels: 'kind/feature' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Motivation 11 | 12 | Describe here the motivation of the request. 13 | 14 | ### Acceptance criteria 15 | 16 | - [ ] A check list of tasks to be done to assume the issue addressed 17 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/data/test-data/createItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: null 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_default.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/listItems/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_200.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/.drafterconfig.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | issue-tracking: 3 | - github 4 | endpoints: 5 | github: 6 | labels: 7 | IGNORE: 8 | - release-type/current 9 | - release-type/major 10 | - release-type/minor 11 | - release-type/patch 12 | - release-type/multi-hotfix 13 | repo-type: github 14 | master-branch: main 15 | included-paths: [ '/code' ] 16 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/listItems/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_200.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/listItems/test-data/listItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 400 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_400.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/root-tree-callouts.txt: -------------------------------------------------------------------------------- 1 | <1> *codebase* root directory 2 | <2> *codebase* maven modules 3 | <3> *documentation* root directory 4 | <4> *documentation* build and node directories 5 | <5> *documentation* antora asciidoc modules 6 | <6> *documentation* antora UI assets (page templates, CSS, JavaScript, images, etc.) 7 | <7> *karate-test* maven module root directory 8 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config/db/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/ 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: mariadb 6 | password: mariadb-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateItem/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/createItems/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/config/db/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/ 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: mariadb 6 | password: mariadb-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/config/db/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/ 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: mariadb 6 | password: mariadb-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateAndShowItem/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateShowAndListItems/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_200.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | method: "POST" 4 | path: "/items" 5 | params: null 6 | request: 7 | id: 0 8 | name: "string" 9 | tag: "string" 10 | responseStatus: 201 11 | responseHeaders: 12 | Content-Type: "application/json" 13 | response: 14 | id: 0 15 | name: "string" 16 | tag: "string" 17 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/createItems/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/createItems/test-data/createItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 400 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_400.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/listItems/test-data/listItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: null 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_default.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jdbc-pom.adoc: -------------------------------------------------------------------------------- 1 | NOTE: If the project has been generated using the xref:archetype:index.adoc[Karate Tools Archetype] the pom will already contain the corresponding configuration. 2 | 3 | .Add the karatetools dependency in the karate pom: 4 | [%collapsible] 5 | ==== 6 | [source,xml,subs="+attributes"] 7 | ---- 8 | include::example$karatetools-pom.xml[] 9 | ---- 10 | ==== 11 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jms-pom.adoc: -------------------------------------------------------------------------------- 1 | NOTE: If the project has been generated using the xref:archetype:index.adoc[Karate Tools Archetype] the pom will already contain the corresponding configuration. 2 | 3 | .Add the karatetools dependency in the karate pom: 4 | [%collapsible] 5 | ==== 6 | [source,xml,subs="+attributes"] 7 | ---- 8 | include::example$karatetools-pom.xml[] 9 | ---- 10 | ==== 11 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/kafka-pom.adoc: -------------------------------------------------------------------------------- 1 | NOTE: If the project has been generated using the xref:archetype:index.adoc[Karate Tools Archetype] the pom will already contain the corresponding configuration. 2 | 3 | .Add the karatetools dependency in the karate pom: 4 | [%collapsible] 5 | ==== 6 | [source,xml,subs="+attributes"] 7 | ---- 8 | include::example$karatetools-pom.xml[] 9 | ---- 10 | ==== 11 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/mongodb-pom.adoc: -------------------------------------------------------------------------------- 1 | NOTE: If the project has been generated using the xref:archetype:index.adoc[Karate Tools Archetype] the pom will already contain the corresponding configuration. 2 | 3 | .Add the karatetools dependency in the karate pom: 4 | [%collapsible] 5 | ==== 6 | [source,xml,subs="+attributes"] 7 | ---- 8 | include::example$karatetools-pom.xml[] 9 | ---- 10 | ==== 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Maven / Java 2 | *target* 3 | *.jar 4 | *.war 5 | *.ear 6 | *.class 7 | log/ 8 | 9 | # Eclipse 10 | .project 11 | .metadata 12 | .classpath 13 | .settings/ 14 | .checkstyle 15 | *.launch 16 | 17 | # IntelliJ specific git ignore 18 | .idea 19 | *.iml 20 | 21 | # VS Code specific git ignore 22 | .vscode/ 23 | *.code-workspace 24 | 25 | # SpotBugs specific git ignore 26 | .fbExcludeFilterFile 27 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/config/db/mariadb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: NA 2 | # docker-compose folder structure: mariadb//scripts 3 | jdbc-url: jdbc:mariadb://localhost:3306/ 4 | driver-class-name: org.mariadb.jdbc.Driver 5 | username: mariadb 6 | password: mariadb-pwd 7 | health-query: SELECT 1 FROM DUAL 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateShowAndListItems/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/listItemsWithMultipleCodes/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_200.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/listItemsWithMultipleCodes/test-data/listItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 400 4 | params: 5 | limit: 0 6 | headers: 7 | Accept-Language: "en" 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/schema/listItems_400.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_createItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | method: "POST" 4 | path: "/items" 5 | params: null 6 | request: 7 | id: 0 8 | name: "string" 9 | tag: "string" 10 | responseStatus: 400 11 | responseHeaders: 12 | Content-Type: "application/json" 13 | response: 14 | code: 0 15 | message: "string" 16 | stack: "string" 17 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/createItems/test-data/createItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: null 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_default.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/prerequisites/pages/checklist.adoc: -------------------------------------------------------------------------------- 1 | The minimum checks to be made before starting with Karate Tools are: 2 | 3 | . Tool requirements should be met. 4 | . The target project to be tested with Karate Tools should exist, and at least it should run locally. 5 | . You should know in which artifact the project REST Open API is defined. Also any REST Open API of external services which you want to mock. 6 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/common/reset/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 10 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config-local-empty-urls.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultUsername: default username 6 | # defaultAuthMode: basic | janus | jwt | openAM 7 | # credentials: pairs of username: password 8 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/createItemsWithMultipleCodes/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/createItemsWithMultipleCodes/test-data/createItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 400 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_400.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks-inline/createItemsWithInlineMocks/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 7 | name: "string" 8 | tag: "string" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks/BasicApi/XXXX_createItems_default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | method: "POST" 4 | path: "/items" 5 | params: null 6 | request: 7 | id: 0 8 | name: "string" 9 | tag: "string" 10 | responseStatus: null 11 | responseHeaders: 12 | Content-Type: "application/json" 13 | response: 14 | code: 0 15 | message: "string" 16 | stack: "string" 17 | -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: KARATE 6 | user: karate 7 | password: karate-pwd 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/urls-examples.adoc: -------------------------------------------------------------------------------- 1 | [source,yaml,subs="+attributes"] 2 | ---- 3 | # urls: karate urls used for target environments and authentication 4 | urls: 5 | xxxApiRestStableUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/TO_BE_COMPLETED')" 6 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 7 | ---- 8 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/createItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 400 4 | params: null 5 | body: 6 | id: 1 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_400.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 10 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/listItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 400 4 | params: 5 | limit: 101 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_400.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config/db/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/ 4 | driver-class-name: org.postgresql.Driver 5 | username: postgres 6 | password: postgres-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/db/mongodb-config.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | hosts: localhost 4 | port: 27017 5 | db-name: KARATE 6 | user: karate 7 | password: karate-pwd 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/report-cucumber-results-json.adoc: -------------------------------------------------------------------------------- 1 | This *json* report is *automatically generated* by Karate Tools runner by aggregating the karate cucumber results json files generated by karate for each feature file. 2 | 3 | This report is used to import results to Test Management Systems supporting cucumber, for example: JIRA-Xray. 4 | 5 | * The report is generated in: 6 | ** `target/cucumber_result.json` 7 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/db/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: KARATE 6 | user: karate 7 | password: karate-pwd 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/config/db/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/ 4 | driver-class-name: org.postgresql.Driver 5 | username: postgres 6 | password: postgres-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/config/db/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/ 4 | driver-class-name: org.postgresql.Driver 5 | username: postgres 6 | password: postgres-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/kafka/avro/karate.avsc: -------------------------------------------------------------------------------- 1 | { 2 | "type": "record", 3 | "name": "KarateEvent", 4 | "namespace": "dev.inditex.karate.kafka", 5 | "fields": [ 6 | { 7 | "name": "id", 8 | "type": "string" 9 | }, 10 | { 11 | "name": "name", 12 | "type": "string" 13 | }, 14 | { 15 | "name": "value", 16 | "type": "long" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /code/clients/src/test/resources/config/kafka/avro/karate.avsc: -------------------------------------------------------------------------------- 1 | { 2 | "type": "record", 3 | "name": "KarateEvent", 4 | "namespace": "dev.inditex.karate.kafka", 5 | "fields": [ 6 | { 7 | "name": "id", 8 | "type": "string" 9 | }, 10 | { 11 | "name": "name", 12 | "type": "string" 13 | }, 14 | { 15 | "name": "value", 16 | "type": "long" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-basic-config.adoc: -------------------------------------------------------------------------------- 1 | The default settings for Basic authentication are: 2 | 3 | * `defaultAuthMode`: `basic` 4 | ** `auth.authMode` when used in a specific request. 5 | 6 | * `defaultUsername`: default username. 7 | ** `auth.username` when used in a specific request. 8 | 9 | * `credentials`: pairs of username: password. 10 | ** `auth.password` when used in a specific request. 11 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/kafka/avro/karate.avsc: -------------------------------------------------------------------------------- 1 | { 2 | "type": "record", 3 | "name": "KarateEvent", 4 | "namespace": "dev.inditex.karate.kafka", 5 | "fields": [ 6 | { 7 | "name": "id", 8 | "type": "string" 9 | }, 10 | { 11 | "name": "name", 12 | "type": "string" 13 | }, 14 | { 15 | "name": "value", 16 | "type": "long" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 10 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 404 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_404.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/listItems/test-data/listItems_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 200 4 | params: 5 | limit: 10 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/listItems/test-data/listItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 400 4 | params: 5 | limit: 101 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_400.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/config/db/postgresql-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jdbc-url: jdbc:postgresql://localhost:5432/ 4 | driver-class-name: org.postgresql.Driver 5 | username: postgres 6 | password: postgres-pwd 7 | health-query: SELECT 1 8 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jms-config-activemq.adoc: -------------------------------------------------------------------------------- 1 | ⚙️ *`jmsFactory`* - JMS Factory to use: *`ActiveMQ`* 2 | 3 | ⚙️ *`brokerURL`* - URL of the Active MQ broker 4 | 5 | ⚙️ *`username`* - User name that the application uses to connect to ActiveMQ 6 | 7 | ⚙️ *`password`* - Password that the application uses to connect to ActiveMQ 8 | 9 | ⚙️ *`sendTimeout`* - Timeout in milliseconds for sending messages (default 5000) 10 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/createItems/test-data/createItems_400.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 400 4 | params: null 5 | body: 6 | id: 1 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_400.schema.yml'))" 9 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth.adoc: -------------------------------------------------------------------------------- 1 | = Authentication 2 | 3 | Karate Tools supports the following authentication mechanisms: 4 | 5 | include::auth-types.adoc[] 6 | 7 | == Karate Auth - Default Settings 8 | 9 | include::auth-defaults.adoc[] 10 | 11 | == Karate Auth - Overwrite at Request Level 12 | 13 | include::auth-overwrite.adoc[] 14 | 15 | == Karate Auth - Error Management 16 | 17 | include::auth-errors.adoc[] 18 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/showItemById/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 1 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/showItemById/test-data/showItemById_404.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 404 4 | params: 5 | itemId: 0 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_404.schema.yml'))" 9 | -------------------------------------------------------------------------------- /.github/actions/config-resolver/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "commonjs": true, 4 | "es6": true, 5 | "jest": true, 6 | "node": true 7 | }, 8 | "extends": "eslint:recommended", 9 | "globals": { 10 | "Atomics": "readonly", 11 | "SharedArrayBuffer": "readonly" 12 | }, 13 | "parserOptions": { 14 | "ecmaVersion": 2018 15 | }, 16 | "rules": { 17 | } 18 | } -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=com.mypackage 3 | artifactId=karate 4 | version=0.1.0-SNAPSHOT 5 | package=com.mypackage.karate 6 | packageInPathFormat=com/mypackage/karate 7 | includeKafkaClients=yes 8 | includeJMSClient_ActiveMQ=yes 9 | includeJMSClient_RabbitMQ=yes 10 | includeMongoDBClient=yes 11 | includeJDBCClient_MariaDB=yes 12 | includeJDBCClient_PostgreSQL=yes 13 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/mocks-inline/createItemsWithInlineMocks/mocks/BasicApi/XXXX_createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | method: "POST" 4 | path: "/items" 5 | params: null 6 | request: 7 | id: 0 8 | name: "string" 9 | tag: "string" 10 | responseStatus: 201 11 | responseHeaders: 12 | Content-Type: "application/json" 13 | response: 14 | id: 0 15 | name: "string" 16 | tag: "string" 17 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/pages/configuration.adoc: -------------------------------------------------------------------------------- 1 | NOTE: If the project has been generated using the xref:archetype:index.adoc[Karate Tools Archetype] the pom will already contain the corresponding configuration. 2 | 3 | .Add the karatetools dependency and execution plugin in the karate pom: 4 | [%collapsible] 5 | ==== 6 | [source,xml,subs="+attributes"] 7 | ---- 8 | include::example$open-api-generator-pom.xml[] 9 | ---- 10 | ==== 11 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/common/reset/test-data/showItemById_200.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 200 4 | params: 5 | itemId: 0 # To be replaced by the test 6 | body: null 7 | matchResponse: true 8 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_200.schema.yml'))" 9 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-jdbc 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.jdbc 6 | packageInPathFormat=dev/inditex/karate/it/jdbc 7 | includeKafkaClients=no 8 | includeJMSClient_ActiveMQ=no 9 | includeJMSClient_RabbitMQ=no 10 | includeMongoDBClient=no 11 | includeJDBCClient_MariaDB=yes 12 | includeJDBCClient_PostgreSQL=yes 13 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config/db/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: 6 | user: admin 7 | password: password 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-full 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.full 6 | packageInPathFormat=dev/inditex/karate/it/full 7 | includeKafkaClients=yes 8 | includeJMSClient_ActiveMQ=yes 9 | includeJMSClient_RabbitMQ=yes 10 | includeMongoDBClient=yes 11 | includeJDBCClient_MariaDB=yes 12 | includeJDBCClient_PostgreSQL=yes 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-kafka 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.kafka 6 | packageInPathFormat=dev/inditex/karate/it/kafka 7 | includeKafkaClients=yes 8 | includeJMSClient_ActiveMQ=no 9 | includeJMSClient_RabbitMQ=no 10 | includeMongoDBClient=no 11 | includeJDBCClient_MariaDB=no 12 | includeJDBCClient_PostgreSQL=no 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/config/db/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: 6 | user: admin 7 | password: password 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/config/db/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: 6 | user: admin 7 | password: password 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-mongodb 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.mongodb 6 | packageInPathFormat=dev/inditex/karate/it/mongodb 7 | includeKafkaClients=no 8 | includeJMSClient_ActiveMQ=no 9 | includeJMSClient_RabbitMQ=no 10 | includeMongoDBClient=yes 11 | includeJDBCClient_MariaDB=no 12 | includeJDBCClient_PostgreSQL=no 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/resources/config/db/mongodb-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: mongo//data 3 | hosts: localhost 4 | port: 27017 5 | db-name: 6 | user: admin 7 | password: password 8 | connect-timeout: 10000 9 | server-selection-timeout: 10000 10 | socket-timeout: 10000 11 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 10 7 | name: "Item10" 8 | tag: "Tag10" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-activemq 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.activemq 6 | packageInPathFormat=dev/inditex/karate/it/activemq 7 | includeKafkaClients=no 8 | includeJMSClient_ActiveMQ=yes 9 | includeJMSClient_RabbitMQ=no 10 | includeMongoDBClient=no 11 | includeJDBCClient_MariaDB=no 12 | includeJDBCClient_PostgreSQL=no 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/archetype.properties: -------------------------------------------------------------------------------- 1 | sourceEncoding=UTF-8 2 | groupId=dev.inditex.karate.it 3 | artifactId=it-activemq 4 | version=0.1.0-SNAPSHOT 5 | package=dev.inditex.karate.it.activemq 6 | packageInPathFormat=dev/inditex/karate/it/activemq 7 | includeKafkaClients=no 8 | includeJMSClient_ActiveMQ=no 9 | includeJMSClient_RabbitMQ=yes 10 | includeMongoDBClient=no 11 | includeJDBCClient_MariaDB=no 12 | includeJDBCClient_PostgreSQL=no 13 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/karate-reports/reports-example-2.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @generate-reports 3 | @generate-reports-failure 4 | 5 | Feature: reports-example-2 6 | Scenario: reports-scenario-2-1 7 | * print 'karate.info is: ', karate.info 8 | * karate.fail(karate.info) 9 | 10 | Scenario Outline: reports-scenario-2-2 11 | * print 'karate.info is: ', karate.info 12 | Examples: 13 | | example | 14 | | 2-2-1 | 15 | | 2-2-2 | 16 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/listItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 401 4 | auth: 5 | authMode: jwt 6 | username: username200 7 | params: 8 | limit: 0 9 | body: null 10 | matchResponse: true 11 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_401.schema.yml'))" 12 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/createItems/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 10 7 | name: "Item10" 8 | tag: "Tag10" 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /code/boot/src/test/java/dev/inditex/karate/jms/JMSKarateObject.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.jms; 2 | 3 | import java.io.Serializable; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | public class JMSKarateObject implements Serializable { 11 | private static final long serialVersionUID = 1L; 12 | 13 | private final String id; 14 | 15 | private final String name; 16 | 17 | private final int value; 18 | } 19 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 6 | 7 | # defaultUsername: default username 8 | # defaultAuthMode: basic | janus | jwt | openAM 9 | # credentials: pairs of username: password 10 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/examples/auth-basic-settings.yml: -------------------------------------------------------------------------------- 1 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 2 | defaultAuthMode: basic 3 | # defaultUsername: default username. 'auth.username' when used in a specific request. 4 | defaultUsername: username100 5 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 6 | credentials: 7 | # username100: Fixed username:password example 8 | username100: username100p 9 | -------------------------------------------------------------------------------- /code/boot/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | servlet: 4 | context-path: /karatetools 5 | logging: 6 | level: 7 | root: INFO 8 | spring: 9 | application: 10 | name: karatetools 11 | profiles: 12 | active: standalone 13 | jackson: 14 | default-property-inclusion: non_null 15 | serialization: 16 | FAIL_ON_EMPTY_BEANS: false 17 | security: 18 | jwt: 19 | token: 20 | secret-key: aaaa1111-bb22-cc33-dd44-eeeeee555555 -------------------------------------------------------------------------------- /code/clients/src/test/java/dev/inditex/karate/jms/JMSKarateObject.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.jms; 2 | 3 | import java.io.Serializable; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | public class JMSKarateObject implements Serializable { 11 | private static final long serialVersionUID = 1L; 12 | 13 | private final String id; 14 | 15 | private final String name; 16 | 17 | private final int value; 18 | } 19 | -------------------------------------------------------------------------------- /code/generators/src/main/java/dev/inditex/karate/openapi/OpenApiGeneratorCLI.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.openapi; 2 | 3 | /** 4 | * The Class OpenApiGeneratorCLI. 5 | */ 6 | public class OpenApiGeneratorCLI { 7 | 8 | /** 9 | * The main method. 10 | * 11 | * @param args the arguments 12 | */ 13 | public static void main(final String[] args) { 14 | final OpenApiGenerator generator = new OpenApiGenerator(); 15 | generator.execute(); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config-no-urls.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | nourls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 6 | 7 | # defaultUsername: default username 8 | # defaultAuthMode: basic | janus | jwt | openAM 9 | # credentials: pairs of username: password 10 | -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/karatetools-pom.xml: -------------------------------------------------------------------------------- 1 | 2 | ... 3 | 4 | X.X.X 5 | 6 | 7 | 8 | ... 9 | 10 | 11 | {karatetools-package} 12 | karatetools-starter 13 | ${karatetools.version} 14 | test 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/karate-options-tags-and-classpath.adoc: -------------------------------------------------------------------------------- 1 | Karate *tags* and *classpath* can be combined. 2 | 3 | For example: 4 | 5 | * Execute tests on a specified *classpath* folder with a specific *tag* 6 | + 7 | [source,bash,subs="+attributes"] 8 | ---- 9 | mvn clean test -Dkarate.options="-t @op.showItemById classpath:com/mypackage/api/xxx-api-rest-stable/functional" 10 | ---- 11 | + 12 | CAUTION: The *classpath* filter should be at the end of the `karate.options` 13 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/deleteAllItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "deleteAllItems" 3 | statusCode: 401 4 | auth: 5 | authMode: jwt 6 | username: username200 7 | params: null 8 | body: null 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/deleteAllItems/schema/deleteAllItems_401.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/archetype/pages/1-artifact-info.adoc: -------------------------------------------------------------------------------- 1 | In the *artifact's main `pom.xml`* file, you will find the artifact's *group ID* and *version* for which the Karate tests are to be created. 2 | 3 | [source,xml,subs="+attributes"] 4 | ---- 5 | com.mypackage 6 | X.X.X 7 | ---- 8 | 9 | In the *artifact's code*, you will find the artifact's main package. 10 | 11 | [source,java,subs="+attributes"] 12 | ---- 13 | package com.mypackage; 14 | ---- 15 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/showItemById_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 401 4 | auth: 5 | authMode: jwt 6 | username: username200 7 | params: 8 | itemId: 0 9 | body: null 10 | matchResponse: true 11 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_401.schema.yml'))" 12 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/expected/config-no-urls.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | nourls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 6 | 7 | # defaultUsername: default username 8 | # defaultAuthMode: basic | janus | jwt | openAM 9 | # credentials: pairs of username: password 10 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/listItems/listItems.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.listItems 3 | 4 | Feature: listItems 5 | 6 | Background: 7 | 8 | Scenario: listItems 9 | 10 | # listItems-200 11 | Given def listItemsRequest = read('test-data/listItems_200.yml') 12 | When def listItemsResponse = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/listItems.feature') listItemsRequest 13 | Then match listItemsResponse.responseStatus == 200 14 | -------------------------------------------------------------------------------- /docs/src/modules/overview/pages/about.adoc: -------------------------------------------------------------------------------- 1 | *Karate Tools* is a *toolkit* to facilitate a *karate module's*: 2 | 3 | ⚙️ *initialization* and *configuration* through a *maven archetype* 4 | 5 | 🗂️ *automated generation* of *test scenarios*, *test data* and external *services mocks* from *Open API* 6 | 7 | 🛠️ usual operations such as *authentication*, *database interaction*, *messaging (Kafka & JMS)*, ... 8 | 9 | ⏩ *execution* in different enviroments of karate tests for a REST artifact. 10 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/stats/functional.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.op 3 | 4 | Feature: op 5 | 6 | Background: 7 | 8 | Scenario: op 9 | Given def req = { status : '1' } 10 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 11 | 12 | Given def req = { status : '2' } 13 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 14 | 15 | Given def req = { status : '3' } 16 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 17 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/openapi-test-tree.txt: -------------------------------------------------------------------------------- 1 | code/openapi-test/ 2 | ├── pom.xml 3 | ├── xxx-api-rest-stable 4 | │ ├── pom.xml 5 | │ └── src 6 | │ └── main 7 | │ └── resources 8 | │ ├── components.yml 9 | │ └── openapi-rest.yml 10 | └── xxx-external-api-rest-stable 11 | ├── pom.xml 12 | └── src 13 | └── main 14 | └── resources 15 | ├── components.yml 16 | └── openapi-rest.yml 17 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/stats/functional-02.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.op 3 | 4 | Feature: op 5 | 6 | Background: 7 | 8 | Scenario: op 9 | Given def req = { status : '1' } 10 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 11 | 12 | Given def req = { status : '2' } 13 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 14 | 15 | Given def req = { status : '3' } 16 | When def res = call read('classpath:apis/package/tag/op/op.feature') req 17 | -------------------------------------------------------------------------------- /e2e/karate/src/test/java/dev/inditex/karate/karatetools/jms/JMSKarateObject.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.karatetools.jms; 2 | 3 | import java.io.Serializable; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | public class JMSKarateObject implements Serializable { 11 | private static final long serialVersionUID = 1L; 12 | 13 | private final String id; 14 | 15 | private final String name; 16 | 17 | private final int value; 18 | } 19 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/CreateItem/CreateItem.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.createItems 3 | 4 | Feature: CreateItem 5 | 6 | Background: 7 | 8 | Scenario: CreateItem 9 | 10 | # createItems-201 11 | Given def createItemsRequest = read('test-data/createItems_201.yml') 12 | When def createItemsResponse = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/createItems.feature') createItemsRequest 13 | Then match createItemsResponse.responseStatus == 201 14 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/maven-model/pom-no-dependencies.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | dev.inditex.karate.maven-model 7 | pom-no-dependencies 8 | 1.0.0 9 | 10 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/expected/config-local-empty-urls.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | testUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/TO_BE_COMPLETED')" 4 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 5 | 6 | # defaultUsername: default username 7 | # defaultAuthMode: basic | janus | jwt | openAM 8 | # credentials: pairs of username: password 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/createItems/createItems.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.createItems 3 | 4 | Feature: createItems 5 | 6 | Background: 7 | 8 | Scenario: createItems 9 | 10 | # createItems-201 11 | Given def createItemsRequest = read('test-data/createItems_201.yml') 12 | When def createItemsResponse = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/createItems.feature') createItemsRequest 13 | Then match createItemsResponse.responseStatus == 201 14 | -------------------------------------------------------------------------------- /docs/src/modules/archetype/pages/2-3-generate-archetype-exec.adoc: -------------------------------------------------------------------------------- 1 | This will automatically create the karate artifact folder structure, the test runner, the configuration and support files. 2 | 3 | image::archetype-execution.png[role="no-border, zoom-in"] 4 | 5 | [source,xml,subs="+attributes"] 6 | ---- 7 | com.mypackage 8 | karate 9 | X.X.X 10 | ---- 11 | 12 | [source,java,subs="+attributes"] 13 | ---- 14 | package com.mypackage.karate; 15 | ---- 16 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/listItems/test-data/listItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "listItems" 3 | statusCode: 401 4 | auth: 5 | authMode: basic 6 | username: username200 7 | password: username200p 8 | params: 9 | limit: 0 10 | body: null 11 | matchResponse: true 12 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/listItems/schema/listItems_401.schema.yml'))" 13 | -------------------------------------------------------------------------------- /code/generators/src/main/java/dev/inditex/karate/openapi/data/Constants.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.openapi.data; 2 | 3 | /** 4 | * The Class Constants. 5 | */ 6 | public class Constants { 7 | 8 | /** The Constant YML_EXTENSION. */ 9 | public static final String YML_EXTENSION = ".yml"; 10 | 11 | /** The Constant TEMPLATE_EXTENSION. */ 12 | public static final String TEMPLATE_EXTENSION = ".template"; 13 | 14 | /** 15 | * Instantiates a new constants. 16 | */ 17 | private Constants() { 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/functional/showItemById/showItemById.feature: -------------------------------------------------------------------------------- 1 | @functional 2 | @op.showItemById 3 | 4 | Feature: showItemById 5 | 6 | Background: 7 | 8 | Scenario: showItemById 9 | 10 | # showItemById-200 11 | Given def showItemByIdRequest = read('test-data/showItemById_200.yml') 12 | When def showItemByIdResponse = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/showItemById.feature') showItemByIdRequest 13 | Then match showItemByIdResponse.responseStatus == 200 14 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/apis/package/tag/ops/op-with-auth.feature: -------------------------------------------------------------------------------- 1 | @ignore 2 | @op.get 3 | 4 | Feature: GET Test Operation 5 | 6 | Background: 7 | * url urls.xxxApiRestStableUrl 8 | 9 | Scenario: get with auth 10 | * def req = __arg 11 | * def authHeader = call read('classpath:karate-auth.js') req.auth 12 | * def headers = karate.merge(req.headers || {}, authHeader || {}) 13 | 14 | * karate.logger.debug('headers=', headers) 15 | 16 | Given path '/get' 17 | And headers headers 18 | And request req.body 19 | When method GET -------------------------------------------------------------------------------- /docs/src/modules/execution/examples/karate-operations-json.txt: -------------------------------------------------------------------------------- 1 | { 2 | "com/.../xxx-api-rest-stable/BasicApi/createItems/createItems" : { 3 | "smoke" : 3, 4 | "functional" : 3, 5 | "calls" : 7 6 | }, 7 | "com/.../api/xxx-api-rest-stable/BasicApi/listItems/listItems" : { 8 | "smoke" : 3, 9 | "functional" : 1, 10 | "calls" : 5 11 | }, 12 | "com/.../api/xxx-api-rest-stable/BasicApi/showItemById/showItemById" : { 13 | "smoke" : 3, 14 | "functional" : 1, 15 | "calls" : 5 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/deleteAllItems/test-data/deleteAllItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "deleteAllItems" 3 | statusCode: 401 4 | auth: 5 | authMode: basic 6 | username: username200 7 | password: username200p 8 | params: null 9 | body: null 10 | matchResponse: true 11 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/deleteAllItems/schema/deleteAllItems_401.schema.yml'))" 12 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/showItemById/test-data/showItemById_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "showItemById" 3 | statusCode: 401 4 | auth: 5 | authMode: basic 6 | username: username200 7 | password: username200p 8 | params: 9 | itemId: 0 10 | body: null 11 | matchResponse: true 12 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/showItemById/schema/showItemById_401.schema.yml'))" 13 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/common/reset/test-data/createItems_201.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 201 4 | params: null 5 | body: 6 | id: 0 # To be replaced by the test 7 | name: "Item0" # To be replaced by the test 8 | tag: "Tag0" # To be replaced by the test 9 | matchResponse: true 10 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_201.schema.yml'))" 11 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/available-clients.adoc: -------------------------------------------------------------------------------- 1 | * xref:clients:jdbc.adoc[*JDBCClient*]: Java Client to interact with DataBases using JDBC. Included drivers for: 2 | ** MariaDB 3 | ** PostgreSQL 4 | * xref:clients:mongodb.adoc[*MongoDBClient*]: Java Client to interact with MongoDB 5 | * xref:clients:kafka.adoc[*Kafka Clients*]: Java Clients (Consumer and Producer) to interact with Kafka 6 | * xref:clients:jms.adoc[*JMSClient*]: Java Client (JMS Send and JMS Consume) to interact with JMS queues. Included providers for: 7 | ** Rabbit MQ 8 | ** Apache Active MQ 9 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/functional/e2e/test-data/createItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 401 4 | auth: 5 | authMode: basic 6 | username: username200 7 | password: username200p 8 | params: null 9 | body: 10 | id: 1 11 | name: "item1" 12 | tag: "tag1" 13 | matchResponse: true 14 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_401.schema.yml'))" 15 | -------------------------------------------------------------------------------- /.github/workflows/docs/code-PR_sync_to_develop.md: -------------------------------------------------------------------------------- 1 | # `code-PR_sync_to_develop` 2 | 3 | [`code-PR_sync_to_develop.yml`](../code-PR_sync_to_develop.yml) generates an automated pull request from main to develop (only applicable with GitFlow development flow). 4 | 5 | ## Trigger 6 | 7 | Any pull request `merged` with `non-code` changes. 8 | 9 | ## Where does it run? 10 | 11 | `ubuntu-24.04` GitHub infrastructure. 12 | 13 | ## Jobs 14 | 15 | - ### `sync-to-develop` 16 | 17 | - **Steps** 18 | 19 | - Create a pull request with the changes merged in `main`. 20 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/mongodb.adoc: -------------------------------------------------------------------------------- 1 | = Karate Clients - MongoDB 2 | 3 | include::mongodb-summary.adoc[] 4 | 5 | == POM Configuration 6 | 7 | === POM Karate Tools 8 | 9 | include::mongodb-pom.adoc[] 10 | 11 | === POM Driver 12 | 13 | include::mongodb-pom-driver.adoc[] 14 | 15 | == Client Configuration 16 | 17 | include::mongodb-config.adoc[] 18 | 19 | .Example 20 | [source,yaml,subs="+attributes"] 21 | ---- 22 | include::example$mongodb-config-local.yml[] 23 | ---- 24 | 25 | == Client Features and Usage 26 | 27 | include::mongodb-features.adoc[] 28 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/smoke/BasicApi/createItems/test-data/createItems_401.yml: -------------------------------------------------------------------------------- 1 | --- 2 | operationId: "createItems" 3 | statusCode: 401 4 | auth: 5 | authMode: basic 6 | username: username200 7 | password: username200p 8 | params: null 9 | body: 10 | id: 1 11 | name: "item1" 12 | tag: "tag1" 13 | matchResponse: true 14 | responseMatches: "#(read('classpath:apis/dev/inditex/karate/karatetools-openapi-test/xxx-api-rest-stable/BasicApi/createItems/schema/createItems_401.schema.yml'))" 15 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/Circular/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "name" : "string", 7 | "partner" : { 8 | "name" : "string", 9 | "partner" : { }, 10 | "children" : [ { } ] 11 | }, 12 | "children" : [ { 13 | "name" : "string", 14 | "partner" : { }, 15 | "children" : [ { } ] 16 | } ] 17 | } 18 | """ 19 | * match result == 20 | """ 21 | { 22 | "partner" : "##object", 23 | "children" : "##[] #object", 24 | "name" : "##string" 25 | } 26 | """ 27 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/openapi/functional/functional.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @karate-openapi 3 | @functional 4 | @op.op 5 | 6 | Feature: ops-functional 7 | 8 | Background: 9 | 10 | Scenario: op1 11 | Given def req = { op: 1, status : '200' } 12 | When def res = call read('classpath:apis/package/tag/ops/op.feature') req 13 | Then match res.status == '200' 14 | 15 | Scenario: op2 16 | Given def req = { op: 2, status : '201' } 17 | When def res = call read('classpath:apis/package/tag/ops/op.feature') req 18 | Then match res.status == '201' 19 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jms-config-rabbitmq.adoc: -------------------------------------------------------------------------------- 1 | ⚙️ *`jmsFactory`* - JMS Factory to use: *`RabbitMQ`* 2 | 3 | ⚙️ *`host`* - RabbitMQ server host 4 | 5 | ⚙️ *`port`* - RabbitMQ server port 6 | 7 | ⚙️ *`username`* - User name that the application uses to connect to RabbitMQ 8 | 9 | ⚙️ *`password`* - Password that the application uses to connect to RabbitMQ 10 | 11 | ⚙️ *`virtual-host`* - virtual host to be used when creating a connection to RabbitMQ (default is "/") 12 | 13 | ⚙️ *`on-message-timeout`* - Timeout in milliseconds for processing messages (default 5000) 14 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | # Contributing 8 | 9 | Thank you for your interest in contributing to this project! We value and appreciate any contributions you can make. 10 | 11 | To maintain a collaborative and respectful environment, please consider the following guidelines when contributing to this project. 12 | 13 | * See [Karate Tools OOS - Contributing](https://inditextech.github.io/karatetools-oss/karatetools-oss/latest/contributing/index.html). 14 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/ObjectsRequired/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "stringResponse" : "string", 7 | "integerResponse" : 1.5, 8 | "objectResponse" : { 9 | "stringResponse" : "string", 10 | "integerResponse" : 1.5 11 | } 12 | } 13 | """ 14 | * match result == 15 | """ 16 | { 17 | "stringResponse" : "#string", 18 | "objectResponse" : { 19 | "stringResponse" : "##string", 20 | "integerResponse" : "#number" 21 | }, 22 | "integerResponse" : "#number" 23 | } 24 | """ 25 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config-local-already-defined.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | testUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/test')" 6 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 7 | 8 | # defaultUsername: default username 9 | # defaultAuthMode: basic | janus | jwt | openAM 10 | # credentials: pairs of username: password 11 | -------------------------------------------------------------------------------- /docs/src/modules/open-api-generator/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Karate Open Api Generator 2 | 3 | *Automatic generation* of tests in Gherkin, with their related data sets and schemas for response validation as well as data to mock external services from *Open Api definitions* 4 | 5 | Karate *open-api-generator* has the following generation modes: 6 | 7 | include::open-api-generator-modes.adoc[] 8 | 9 | == Configuration 10 | 11 | include::configuration.adoc[] 12 | 13 | == API Dependencies 14 | 15 | include::api-dependencies.adoc[] 16 | 17 | == Execution 18 | 19 | include::execution.adoc[] 20 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/expected/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | testUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/TO_BE_COMPLETED')" 6 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 7 | 8 | # defaultUsername: default username 9 | # defaultAuthMode: basic | janus | jwt | openAM 10 | # credentials: pairs of username: password 11 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/expected/config-local-already-defined.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | testUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/test')" 6 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 7 | 8 | # defaultUsername: default username 9 | # defaultAuthMode: basic | janus | jwt | openAM 10 | # credentials: pairs of username: password 11 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-jwt-errors.adoc: -------------------------------------------------------------------------------- 1 | The errors applicable to JWT authentication are: 2 | 3 | * `invalid authMode`: 4 | + 5 | [source,log,subs="+attributes"] 6 | ---- 7 | >> auth >> Trying to authenticate with no authMode or invalid authMode. auth.authMode:JWT 8 | ---- 9 | 10 | * `no username`: 11 | + 12 | [source,log,subs="+attributes"] 13 | ---- 14 | >> auth >> Trying to authenticate with no username. auth.authMode:jwt auth.username:null 15 | ---- 16 | 17 | * `failed to generate jwt`: 18 | + 19 | [source,log,subs="+attributes"] 20 | ---- 21 | >> auth >> jwt >> failed to generate jwt 22 | ---- 23 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/summary.adoc: -------------------------------------------------------------------------------- 1 | This section includes: 2 | 3 | ▶️ Command Line Arguments (Karate Env, Karate Options, ...) :: 4 | see xref:execution:arguments.adoc[Execution - Arguments] 5 | 6 | 📄 How to configure Karate Tools Logging :: 7 | see xref:execution:logging.adoc[Execution - Logging] 8 | 9 | 🖥️ How to use Karate Tools Mock Server :: 10 | see xref:execution:mock-server.adoc[Execution - Mock Server] 11 | 12 | 📊 What reports are generated :: 13 | see xref:execution:reports.adoc[Execution - Reports] 14 | 15 | 🧰 Karate Tools Utilities :: 16 | see xref:execution:karate-cache.adoc[Karate Cache] 17 | -------------------------------------------------------------------------------- /code/boot/src/test/java/dev/inditex/karate/docker/DockerComposeTestConfiguration.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.docker; 2 | 3 | import org.springframework.boot.SpringBootConfiguration; 4 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 | import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; 6 | import org.springframework.context.annotation.ComponentScan; 7 | 8 | @SpringBootConfiguration 9 | @EnableAutoConfiguration(exclude = { 10 | MongoAutoConfiguration.class 11 | }) 12 | @ComponentScan("dev.inditex.karate") 13 | public class DockerComposeTestConfiguration { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /code/generators/src/main/java/dev/inditex/karate/console/ConsoleItem.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.console; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.RequiredArgsConstructor; 6 | 7 | /** 8 | * The Class ConsoleItem. 9 | */ 10 | @AllArgsConstructor 11 | @RequiredArgsConstructor 12 | @Getter 13 | public class ConsoleItem { 14 | 15 | /** The name. */ 16 | private final String name; 17 | 18 | /** The text. */ 19 | private final String text; 20 | 21 | /** The key. */ 22 | private char key; 23 | 24 | /** The as default. */ 25 | private boolean asDefault; 26 | } 27 | -------------------------------------------------------------------------------- /docs/supplemental-ui/partials/footer-scripts.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{!-- 3 | 4 | --}} 5 | {{!-- 6 | Custom highlight.js configuration. Supported languages: 7 | bash, dockerfile, gherkin, java, javascript, json, markdown, plaintext, properties, sql, xml, yaml 8 | --}} 9 | 10 | 11 | 12 | {{#if env.SITE_SEARCH_PROVIDER}} 13 | {{> search-scripts}} 14 | {{/if}} 15 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/listItems/listItems.feature: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.listItems 3 | 4 | Feature: listItems Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: listItems 9 | * def req = call utils.readTestData 10 | * def result = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/listItems/listItems.feature') req 11 | * match result.responseStatus == 12 | Examples: 13 | | status | testDataFile | 14 | | 200 | 'test-data/listItems_200.yml' | 15 | | 400 | 'test-data/listItems_400.yml' | 16 | | default | 'test-data/listItems_default.yml' | 17 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/SimpleOpenApi/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "stringResponse" : "string", 7 | "integerResponse" : 1.5, 8 | "objectResponse" : { 9 | "stringResponse" : "string", 10 | "integerResponse" : 1.5 11 | } 12 | } 13 | """ 14 | * def objectResponse = 15 | """ 16 | { 17 | "stringResponse" : "##string", 18 | "integerResponse" : "##number" 19 | } 20 | """ 21 | * match result == 22 | """ 23 | { 24 | "stringResponse" : "##string", 25 | "objectResponse" : "##(^^objectResponse)", 26 | "integerResponse" : "##number" 27 | } 28 | """ 29 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/logging-config.adoc: -------------------------------------------------------------------------------- 1 | Karate logging configuration file (`logback-test.xml`) is located in the `src/test/resources` folder. The default configuration is as follows: 2 | 3 | * The log output is to the console and to a file. 4 | ** `target/karate.log` 5 | * The log level for the `com.intuit.karate` and `{karatetools-package}` packages is set to `INFO`. 6 | * The log level for the root logger is set to `INFO`. 7 | 8 | NOTE: If the log level for `com.intuit.karate` is changed to debug, Karate will show/log all the requests and responses. This setting must be used only for debugging purposes as it will generate a lot of output. 9 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/createItems/createItems.feature: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.createItems 3 | 4 | Feature: createItems Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: createItems 9 | * def req = call utils.readTestData 10 | * def result = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/createItems/createItems.feature') req 11 | * match result.responseStatus == 12 | Examples: 13 | | status | testDataFile | 14 | | 201 | 'test-data/createItems_201.yml' | 15 | | 400 | 'test-data/createItems_400.yml' | 16 | | default | 'test-data/createItems_default.yml' | 17 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/cache/cache.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @karate-cache 3 | 4 | Feature: karate-cache 5 | 6 | Background: 7 | 8 | Scenario: karate-cache-static 9 | 10 | Given cache.clear() 11 | Given cache.put('var1', 'value1') 12 | When def var1 = cache.get('var1') 13 | Then match var1 == 'value1' 14 | Then cache.remove('var1') 15 | Then print cache.get() 16 | 17 | Scenario: karate-cache-variable 18 | 19 | Given cache.clear() 20 | Given def value2 = 'value2' 21 | Given cache.put('var2', value2) 22 | When def var2 = cache.get('var2') 23 | Then match var2 == 'value2' 24 | Then cache.remove('var2') 25 | Then print cache.get() 26 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/ObjectsOptional/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "stringResponse" : "string", 7 | "integerResponse" : 1.5, 8 | "objectResponse2" : { 9 | "stringResponse" : "string", 10 | "integerResponse" : 1.5 11 | } 12 | } 13 | """ 14 | * def objectResponse2 = 15 | """ 16 | { 17 | "stringResponse" : "##string", 18 | "integerResponse" : "#number" 19 | } 20 | """ 21 | * match result == 22 | """ 23 | { 24 | "stringResponse" : "#string", 25 | "objectResponse2" : "##(^^objectResponse2)", 26 | "integerResponse" : "#number" 27 | } 28 | """ 29 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/urls-config.adoc: -------------------------------------------------------------------------------- 1 | The environment URLs must be updated per environment in the `config-.yml` files: 2 | 3 | * `urls` 4 | ** `Url`: URL of the REST API <1> under test. 5 | ** ... 6 | ** `Url`: URL of the REST API under test. 7 | 8 | Artifact Urls keys are added automatically when using the *open-api-generator* to generate tests with the default value 9 | 10 | * `"#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/TO_BE_COMPLETED')"` 11 | 12 | Note the marker *`#karate-utils-new-karate-url-marker`* is used by the generator to find the location of the new urls, *please do not remove* 13 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/karatetools-oss-openapi-test.adoc: -------------------------------------------------------------------------------- 1 | The `karatetools-oss-openapi-test` module contains two submodules that represent the two APIs to be tested: 2 | 3 | [source,subs="attributes+"] 4 | ---- 5 | include::example$openapi-test-tree.txt[] 6 | ---- 7 | 8 | NOTE: Both APIs are identical, but they are used to demonstrate the testing of two different APIs (self and external APIs). 9 | 10 | The `xxx-api-rest-stable` and `xxx-external-api-rest-stable` api structure is as follows: 11 | 12 | image::karatetools-oss-open-api.png[role="no-border, zoom-in"] 13 | 14 | image::karatetools-oss-open-api-swager.png[role="no-border, zoom-in"] 15 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/smoke/BasicApi/showItemById/showItemById.feature: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.showItemById 3 | 4 | Feature: showItemById Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: showItemById 9 | * def req = call utils.readTestData 10 | * def result = call read('classpath:apis/dev/inditex/karate/openapi/test/BasicApi/showItemById/showItemById.feature') req 11 | * match result.responseStatus == 12 | Examples: 13 | | status | testDataFile | 14 | | 200 | 'test-data/showItemById_200.yml' | 15 | | 404 | 'test-data/showItemById_404.yml' | 16 | | default | 'test-data/showItemById_default.yml' | 17 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/root-tree.txt: -------------------------------------------------------------------------------- 1 | ├── code <1> 2 | │ ├── archetype <2> 3 | │ │ └── src 4 | │ │ └── test 5 | │ │ ├── java 6 | │ │ └── resources 7 | │ ... 8 | │ └── starter <2> 9 | ├── docs <3> 10 | │ ├── build <4> 11 | │ ├── node_modules <4> 12 | │ ├── src 13 | │ │ └── modules <5> 14 | │ │ ├── HOME 15 | │ │ │ ├── images 16 | │ │ │ └── pages 17 | │ │ ... 18 | │ │ └── release 19 | │ └── supplemental-ui <6> 20 | └── e2e 21 | └── karate <7> 22 | └── src 23 | └── test 24 | ├── java 25 | └── resources 26 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/report-surefire.adoc: -------------------------------------------------------------------------------- 1 | The configuration for maven-surefire-report-plugin and maven-site-plugin is included in the pom **by Karate Tools Archetype** as follows: 2 | 3 | [source,xml,subs="+attributes"] 4 | ---- 5 | include::example$surefire-report-plugin.xml[] 6 | ---- 7 | 8 | The command to generate the surefire report is: 9 | 10 | [source,bash,subs="+attributes"] 11 | ---- 12 | mvn surefire-report:report-only site -DgenerateReports=false 13 | ---- 14 | 15 | * The report is generated in: 16 | ** `target/surefire-html-report` 17 | *** `surefire-report.html` 18 | + 19 | image::karate-reports-surefire.png[role="no-border, zoom-in"] 20 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/pages/karatetools-oss-generators.adoc: -------------------------------------------------------------------------------- 1 | 2 | The `karatetools-oss-generators` module includes the following packages: 3 | 4 | * 📦 `dev.inditex.karate.openapi`: *Open API generator* to create *test scenarios*, *test data* and *external services mocks* from *Open API* specifications. 5 | * 📦 `dev.inditex.karate.console`: *request user input from the console* (which API specification file to use, which operations to generate, etc). 6 | 7 | .Karate Tools Generators Overview 8 | [plantuml,development-guide-karatetools-oss-generators,png,role="no-border, zoom-in"] 9 | .... 10 | include::puml:partial$karatetools-oss-generators.puml[] 11 | .... 12 | -------------------------------------------------------------------------------- /docs/src/modules/overview/pages/modules.adoc: -------------------------------------------------------------------------------- 1 | |⚙️ xref:archetype:index.adoc[Karate Tools Archetype] 2 | |*Archetype to initialize* a Karate maven project from scratch with all its dependencies 3 | 4 | |⚙️ xref:open-api-generator:index.adoc[Karate Tools Open Api Generator] 5 | |*Automatic generation* of tests in Gherkin, with their related data sets and schemas for response validation as well as data to mock external services from *Open Api definitions*. 6 | 7 | |⚙️ xref:clients:index.adoc[Karate Clients] 8 | |Clients to interact with Relational Databases (*JDBC*), Non-relational Database (*Mongo*), Event Messaging (*Kafka Consumer and Producer*) and JMS Messaging (*JMS Send and JMS Consume*). 9 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-basic-errors.adoc: -------------------------------------------------------------------------------- 1 | The errors applicable to Basic authentication are: 2 | 3 | * `invalid authMode`: 4 | + 5 | [source,log,subs="+attributes"] 6 | ---- 7 | >> auth >> Trying to authenticate with no authMode or invalid authMode. auth.authMode:BASIC 8 | ---- 9 | 10 | * `no username`: 11 | + 12 | [source,log,subs="+attributes"] 13 | ---- 14 | >> auth >> Trying to authenticate with no username. auth.authMode:basic auth.username:null 15 | ---- 16 | 17 | * `no password`: 18 | + 19 | [source,log,subs="+attributes"] 20 | ---- 21 | >> auth >> Trying to authenticate with no password. auth.authMode:basic auth.username:username100 auth.password:undefined 22 | ---- 23 | -------------------------------------------------------------------------------- /code/runner/src/test/resources/scenarios/openapi/smoke/smoke.feature: -------------------------------------------------------------------------------- 1 | @inditex-oss-karate 2 | @karate-openapi 3 | @smoke 4 | @op.get @op.post 5 | 6 | Feature: ops-smoke 7 | 8 | Background: 9 | 10 | Scenario Outline: op1 11 | Given def req = { op: 1, status : '' } 12 | When def res = call read('classpath:apis/package/tag/ops/op.feature') req 13 | Then match res.status == '' 14 | Examples: 15 | | status | 16 | | 200 | 17 | 18 | Scenario Outline: op2 19 | Given def req = { op: 2, status : '' } 20 | When def res = call read('classpath:apis/package/tag/ops/op.feature') req 21 | Then match res.status == '' 22 | Examples: 23 | | status | 24 | | 201 | 25 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/report-karate-html.adoc: -------------------------------------------------------------------------------- 1 | This report is karate's default and included in the `karatetools-starter`: 2 | 3 | [source,xml,subs="+attributes"] 4 | ---- 5 | 6 | 7 | {karatetools-package} 8 | karatetools-starter 9 | ${karatetools.version} 10 | test 11 | 12 | ---- 13 | 14 | * The command to generate the karate report is: 15 | ** *Automatically generated by Karate*. 16 | 17 | * The report is generated in: 18 | ** `target/karate-reports` 19 | *** `karate-summary.html` 20 | + 21 | image::karate-reports-default-karate.png[role="no-border, zoom-in"] 22 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/docs-tree.txt: -------------------------------------------------------------------------------- 1 | docs 2 | ├── antora-playbook-local.yml <1> 3 | ├── antora-playbook.yml <1> 4 | ├── build <2> 5 | ├── node_modules <3> 6 | ├── package-lock.json <4> 7 | ├── package.json <4> 8 | ├── src <5> 9 | │   ├── antora.yml <6> 10 | │   └── modules <7> 11 | │   ├── HOME 12 | │   ├── archetype 13 | │   ├── clients 14 | │   ├── configuration 15 | │   ├── contributing 16 | │   ├── execution 17 | │   ├── open-api-generator 18 | │   ├── overview 19 | │   ├── prerequisites 20 | │   ├── puml 21 | │   └── release 22 | ├── supplemental-ui <8> 23 | │   ├── css 24 | │   ├── img 25 | │   ├── js 26 | │   └── partials 27 | └── ui-bundle.zip <9> 28 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/ObjectsEdgeCases/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "mapProperty" : { }, 7 | "objectProperty" : { 8 | "hello" : "world" 9 | }, 10 | "objectPropertyTitle" : { 11 | "hello" : "string" 12 | }, 13 | "objectPropertyTitle2" : { 14 | "hello" : "string" 15 | } 16 | } 17 | """ 18 | * def ObjectResponse2 = 19 | """ 20 | { 21 | "hello" : "##string" 22 | } 23 | """ 24 | * match result == 25 | """ 26 | { 27 | "objectPropertyTitle" : "##(^^ObjectResponse2)", 28 | "objectProperty" : "##object", 29 | "objectPropertyTitle2" : "##(^^ObjectResponse2)", 30 | "mapProperty" : "##object" 31 | } 32 | """ 33 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 4 | 5 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 6 | defaultAuthMode: basic 7 | # defaultUsername: default username. 'auth.username' when used in a specific request. 8 | defaultUsername: username100 9 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 10 | credentials: 11 | # username100: Fixed username:password example 12 | username100: username100p 13 | -------------------------------------------------------------------------------- /docs/src/modules/overview/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Overview 2 | 3 | include::about.adoc[] 4 | 5 | == Features 6 | 7 | include::features.adoc[] 8 | 9 | == Architecture 10 | 11 | The high-level architecture of Karate Tools is shown in the following diagram: 12 | 13 | [plantuml,architecture,png,role="no-border, zoom-in"] 14 | .... 15 | include::puml:partial$sprites.puml[] 16 | include::puml:partial$architecture.puml[] 17 | .... 18 | 19 | == Setup and Usage 20 | 21 | include::setup.adoc[] 22 | 23 | == Examples and Training 24 | 25 | include::examples.adoc[] 26 | 27 | == Modules 28 | 29 | [cols="40h,~"] 30 | |======================= 31 | |Feature|Description 32 | 33 | include::modules.adoc[] 34 | 35 | |======================= 36 | -------------------------------------------------------------------------------- /.github/actions/config-resolver/src/actionUtils.js: -------------------------------------------------------------------------------- 1 | // ............................................................................ 2 | // IMPORTS 3 | // ............................................................................ 4 | const core = require('@actions/core'); 5 | const stringUtils = require('./stringUtils') 6 | /** 7 | * 8 | * @param {*} name Name of the input 9 | * @param {*} options 10 | * @returns 11 | */ 12 | function getInputAsArray(name, options = core.InputOptions){ 13 | const inputValue = 14 | (stringUtils.isNullOrEmptyOrWhiteSpace)?core.getInput(name):core.getInput(name, options); 15 | return stringUtils.getMultilineStringAsArray(inputValue) 16 | } 17 | 18 | module.exports = { getInputAsArray }; -------------------------------------------------------------------------------- /code/generators/src/main/resources/open-api-generator/smoke-test-feature.template: -------------------------------------------------------------------------------- 1 | @smoke 2 | @op.[(${operation.operationId})] 3 | 4 | Feature: [(${operation.operationId})] Smoke Tests 5 | 6 | Background: 7 | 8 | Scenario Outline: [(${operation.operationId})] 9 | * def req = call utils.readTestData 10 | * def result = call read('classpath:[(${operationFeatureClassPath})]') req 11 | * match result.responseStatus == 12 | [# th:if="${responses.size} > 0"]Examples: 13 | | status | testDataFile |[/][# th:each="response: ${responses}" th:with='status=${@java.lang.String@format("%-7s",response.statusCode)}'] 14 | | [[${status}]] | 'test-data/[(${operation.operationId})]_[(${response.statusCode})].yml' |[/] 15 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/java/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/kafka.adoc: -------------------------------------------------------------------------------- 1 | = Karate Clients - Kafka 2 | 3 | include::kafka-summary.adoc[] 4 | 5 | == POM Configuration 6 | 7 | === POM Karate Tools 8 | 9 | include::kafka-pom.adoc[] 10 | 11 | === POM Client 12 | 13 | include::kafka-pom-client.adoc[] 14 | 15 | === POM Kafka Events 16 | 17 | include::kafka-pom-events.adoc[] 18 | 19 | == Client Configuration 20 | 21 | include::kafka-config.adoc[] 22 | 23 | .Example 24 | [source,yaml,subs="+attributes"] 25 | ---- 26 | include::example$kafka-config-local.yml[] 27 | ---- 28 | 29 | == Client Features and Usage - Producer 30 | 31 | include::kafka-producer-features.adoc[] 32 | 33 | == Client Features and Usage - Consumer 34 | 35 | include::kafka-consumer-features.adoc[] 36 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/config/jms/rabbitmq-config.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: RabbitMQ 4 | # host: RabbitMQ server host. 5 | host: localhost 6 | # port: RabbitMQ server port. 7 | port: 25672 8 | # username: User name that the application uses to connect to RabbitMQ. 9 | username: karate 10 | # password: Password that the application uses to connect to RabbitMQ. 11 | password: karate-pwd 12 | # virtual-host: virtual host to be used when creating a connection to RabbitMQ. 13 | virtual-host: / 14 | # on-message-timeout: Timeout in milliseconds for processing messages. 15 | on-message-timeout: 5000 16 | -------------------------------------------------------------------------------- /docs/src/modules/clients/examples/rabbitmq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: RabbitMQ 4 | # host: RabbitMQ server host. 5 | host: localhost 6 | # port: RabbitMQ server port. 7 | port: 25672 8 | # username: User name that the application uses to connect to RabbitMQ. 9 | username: karate 10 | # password: Password that the application uses to connect to RabbitMQ. 11 | password: karate-pwd 12 | # virtual-host: virtual host to be used when creating a connection to RabbitMQ. 13 | virtual-host: / 14 | # on-message-timeout: Timeout in milliseconds for processing messages. 15 | on-message-timeout: 5000 16 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/schema/SpecificTypes/expected.feature: -------------------------------------------------------------------------------- 1 | Feature: 2 | Scenario: HelloTest 3 | * def result = 4 | """ 5 | { 6 | "uuidSchema" : "3fa85f64-5717-4562-b3fc-2c963f66afa6", 7 | "emailSchema" : "apiteam@swagger.io", 8 | "passwordSchema" : "string", 9 | "dateSchema" : "2015-07-20", 10 | "datetimeSchema" : "2015-07-20T15:49:04-07:00", 11 | "booleanSchema" : true 12 | } 13 | """ 14 | * match result == 15 | """ 16 | { 17 | "byteSchema" : "##string", 18 | "booleanSchema" : "##boolean", 19 | "uuidSchema" : "##uuid", 20 | "datetimeSchema" : "##string", 21 | "binarySchema" : "##string", 22 | "emailSchema" : "##string", 23 | "dateSchema" : "##string", 24 | "passwordSchema" : "##string" 25 | } 26 | """ 27 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config/jms/rabbitmq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: RabbitMQ 4 | # host: RabbitMQ server host. 5 | host: localhost 6 | # port: RabbitMQ server port. 7 | port: 25672 8 | # username: User name that the application uses to connect to RabbitMQ. 9 | username: karate 10 | # password: Password that the application uses to connect to RabbitMQ. 11 | password: karate-pwd 12 | # virtual-host: virtual host to be used when creating a connection to RabbitMQ. 13 | virtual-host: / 14 | # on-message-timeout: Timeout in milliseconds for processing messages. 15 | on-message-timeout: 5000 16 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/maven-model/pom-single-dependency.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | dev.inditex.karate.maven-model 7 | pom-single-dependency 8 | 1.0.0 9 | 10 | 11 | 12 | dev.inditex.karate.maven-model 13 | dependency-1 14 | 1.0.0 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/src/modules/configuration/pages/auth-basic.adoc: -------------------------------------------------------------------------------- 1 | = Basic Authentication 2 | 3 | > *Karate Tools* will send the HTTP requests with the *"Authorization" header* made of *"Basic"*, a space character, and a *Base64-encoded string "username:password"*. 4 | 5 | == Configuration 6 | 7 | include::auth-basic-config.adoc[] 8 | 9 | == Examples 10 | 11 | === Default settings 12 | 13 | [source,yaml,subs="+attributes"] 14 | ---- 15 | include::example$auth-basic-settings.yml[] 16 | ---- 17 | 18 | === Overwrite at request level 19 | 20 | * test-data\_.yml 21 | + 22 | [source,yaml,subs="+attributes"] 23 | ---- 24 | include::example$auth-basic-overwrite.yml[] 25 | ---- 26 | 27 | == Error Management 28 | 29 | include::auth-basic-errors.adoc[] 30 | -------------------------------------------------------------------------------- /e2e/karate/src/test/java/dev/inditex/karate/karatetools/test/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.karatetools.test; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/boot/src/test/resources/compose/mongodb/data/01.data.js: -------------------------------------------------------------------------------- 1 | print('==================================================='); 2 | print('================== MONGO JS INIT =================='); 3 | db.createUser( 4 | { 5 | user: 'karate', 6 | pwd: 'karate-pwd', 7 | roles: [ 8 | { 9 | role: 'readWrite', 10 | db: 'KARATE' 11 | } 12 | ] 13 | } 14 | ); 15 | print('==================================================='); 16 | print('db.getUsers()= '); 17 | printjson(db.getUsers()); 18 | print('==================================================='); 19 | print('db.stats()= '); 20 | printjson(db.stats()); 21 | print('================== MONGO JS INIT DONE ============='); 22 | print('==================================================='); 23 | -------------------------------------------------------------------------------- /docs/src/modules/contributing/examples/docs-tree-callouts.txt: -------------------------------------------------------------------------------- 1 | <1> Antora playbooks 2 | <2> Build folder where the output documentation is generated 3 | <3> Node modules folder 4 | <4> Node package configuration file 5 | <5> Content source root folder 6 | <6> `antora.yml` (reserved file name): Antora component version descriptor file. This file indicates to Antora that the contents of a directory named modules should be collected and processed. 7 | <7> `modules` (reserved directory name): Antora required directory located at the same hierarchical level as the antora.yml file. The modules directory must contain, at a minimum, either a ROOT module directory or a named module directory. 8 | <8> Supplemental UI to customize the UI bundle 9 | <9> Antora Default UI bundle 10 | -------------------------------------------------------------------------------- /code/boot/src/main/java/dev/inditex/karate/controller/RunningServiceDTO.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.controller; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import lombok.Builder; 7 | import lombok.Getter; 8 | 9 | /** 10 | * The Class RunningServiceDTO. 11 | */ 12 | @Getter 13 | @Builder 14 | public class RunningServiceDTO { 15 | 16 | /** The name. */ 17 | private final String name; 18 | 19 | /** The image. */ 20 | private final String image; 21 | 22 | /** The host. */ 23 | private final String host; 24 | 25 | /** The ports. */ 26 | private final List ports; 27 | 28 | /** The env. */ 29 | private final Map env; 30 | 31 | /** The labels. */ 32 | private final Map labels; 33 | } 34 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/default/reference/src/test/java/com/mypackage/karate/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package com.mypackage.karate; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /docs/src/modules/execution/pages/karate-cache.adoc: -------------------------------------------------------------------------------- 1 | = Karate Cache 2 | 3 | *Karate Tools* includes a *`KarateCache` class* to be able to share variables across tests. 4 | 5 | * The KarateCache is included by default by the Karate Tools Archetype and accessible through the global variable `cache` 6 | 7 | .Java Signature 8 | [source,java,subs="+attributes"] 9 | ---- 10 | public static void put(final String key, final Object value) 11 | public static Object get(final String key) 12 | public static void remove(final String key) 13 | ---- 14 | 15 | .Gherkin Usage 16 | [source,gherkin,subs="+attributes"] 17 | ---- 18 | Then cache.put('var', value) 19 | 20 | Given req.params.XXX = cache.get('var') 21 | Given req.body.XXX = cache.get('var') 22 | 23 | Given cache.remove('var') 24 | ---- 25 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jdbc-summary.adoc: -------------------------------------------------------------------------------- 1 | Java Client to interact with DataBases using *JDBC from karate*. 2 | 3 | It provides features to execute SQL *queries*, SQL *inserts, updates, deletes, ...* and SQL *scripts from file*. 4 | 5 | [plantuml,jdbc,png,role="no-border, zoom-in"] 6 | .... 7 | include::puml:partial$sprites.puml[] 8 | include::puml:partial$jdbc-client.puml[] 9 | .... 10 | 11 | * How to set it up: 12 | ** Define (if applicable) the JDBC client dependencies in the project *xref:#pom-configuration[POM]* 13 | ** Define the JDBC client configuration in the file *xref:#client-configuration[src/test/resources/config/db/--config.yml]* 14 | 15 | * How to use it in the karate files: 16 | ** *xref:#client-features-and-usage[JDBC Client Features and Usage]* 17 | -------------------------------------------------------------------------------- /e2e/karate/src/test/resources/config-local.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | xxxApiRestStableUrl: "#('http://localhost:' + (karate.properties['APP_PORT'] || 8080) + '/karatetools')" 4 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 5 | 6 | # defaultAuthMode: basic | jwt. 'auth.authMode' when used in a specific request. 7 | defaultAuthMode: basic 8 | # defaultUsername: default username. 'auth.username' when used in a specific request. 9 | defaultUsername: username100 10 | # credentials: pairs of username: password. 'auth.password' when used in a specific request. 11 | credentials: 12 | # username100: Fixed username:password example 13 | username100: username100p 14 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/full/reference/src/test/java/dev/inditex/karate/it/full/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.full; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/jdbc/reference/src/test/java/dev/inditex/karate/it/jdbc/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.jdbc; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/kafka/reference/src/test/java/dev/inditex/karate/it/kafka/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.kafka; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/generators/src/test/resources/openapi/unit/config/config.yml: -------------------------------------------------------------------------------- 1 | # urls: karate urls used for target environments and authentication 2 | urls: 3 | janusAuthUrl: TO_BE_COMPLETED 4 | openAMAuthUrl: TO_BE_COMPLETED 5 | #karate-utils-new-karate-url-marker (do not remove) - new generated apis urls will be placed here automatically 6 | 7 | # defaultUsername: default username 8 | defaultUsername: TO_BE_COMPLETED 9 | # defaultAuthMode: basic | janus | jwt | openAM 10 | defaultAuthMode: TO_BE_COMPLETED 11 | # credentials: pairs of username: password 12 | credentials: 13 | # username100: Fixed username:password example 14 | username100: username100p 15 | # usernameFromCyberArk: CyberArk username:password example 16 | usernameFromCyberArk: '#(karate.properties["cyberark.credentials.user"])' 17 | -------------------------------------------------------------------------------- /code/archetype/src/main/resources/archetype-resources/src/test/resources/config/jms/rabbitmq-config-local.yml: -------------------------------------------------------------------------------- 1 | # docker-compose environment variables: 2 | # docker-compose folder structure: NA 3 | jmsFactory: RabbitMQ 4 | # host: RabbitMQ server host. 5 | host: localhost 6 | # port: RabbitMQ server port. 7 | port: 25672 8 | # username: User name that the application uses to connect to RabbitMQ. 9 | username: karate 10 | # password: Password that the application uses to connect to RabbitMQ. 11 | password: karate-pwd 12 | # virtual-host: virtual host to be used when creating a connection to RabbitMQ. 13 | virtual-host: / 14 | # on-message-timeout: Timeout in milliseconds for processing messages. 15 | on-message-timeout: 5000 16 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/activemq/reference/src/test/java/dev/inditex/karate/it/activemq/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.activemq; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/mongodb/reference/src/test/java/dev/inditex/karate/it/mongodb/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.mongodb; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/archetype/src/test/resources/projects/rabbitmq/reference/src/test/java/dev/inditex/karate/it/activemq/KarateRunnerTest.java: -------------------------------------------------------------------------------- 1 | package dev.inditex.karate.it.activemq; 2 | 3 | import static org.assertj.core.api.Assertions.assertThat; 4 | 5 | import dev.inditex.karate.results.KarateReportsGenerator; 6 | import dev.inditex.karate.test.KarateRunner; 7 | 8 | import com.intuit.karate.Results; 9 | import org.junit.jupiter.api.Test; 10 | 11 | class KarateRunnerTest extends KarateRunner { 12 | 13 | @Test 14 | void run() { 15 | final Results results = super.execute(); 16 | 17 | KarateReportsGenerator.generate(results); 18 | 19 | assertThat(results).isNotNull(); 20 | assertThat(results.getFailCount()).as("Karate Fail Count [%s]", results.getScenariosFailed()).isZero(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /docs/src/modules/clients/pages/jdbc-pom-add-driver.adoc: -------------------------------------------------------------------------------- 1 | 2 | .*If you need to add a different JDBC Driver*, you can include it in the pom as follows: 3 | [%collapsible] 4 | ==== 5 | * SQL Server 6 | + 7 | [source,xml,subs="+attributes"] 8 | ---- 9 | 10 | ... 11 | 12 | 13 | 11.2.3.jre17 14 | 15 | 16 | 17 | ... 18 | 19 | 20 | 21 | com.microsoft.sqlserver 22 | mssql-jdbc 23 | ${mssql-jdbc.version} 24 | 25 | 26 | ---- 27 | ==== 28 | -------------------------------------------------------------------------------- /docs/src/modules/overview/pages/setup.adoc: -------------------------------------------------------------------------------- 1 | To setup up a karate project for testing of a REST artifact, you should follow the next steps: 2 | 3 | . Ensure the *xref:prerequisites:index.adoc[Prerequisites]* are fullfilled 4 | . Execute the *xref:archetype:index.adoc[Archetype]* to setup the initial karate project 5 | . Follow the *xref:configuration:index.adoc[Configuration]* steps 6 | . Generate tests, data sets and mocks 7 | .. From Open API definitions with the *xref:open-api-generator:index.adoc[Open Api Generator]* 8 | . Integrate *xref:clients:index.adoc[Karate Clients]* in the tests for test data preparation and test validation 9 | . Follow the *xref:execution:index.adoc[Execution]* instructions about execution, reporting, start a local application and other utilities usage (KarateCache, ...). 10 | --------------------------------------------------------------------------------