├── 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 |
--------------------------------------------------------------------------------