{"id":24164901,"url":"https://github.com/sw-tester/bdd-transform-values","last_synced_at":"2025-06-24T07:04:36.490Z","repository":{"id":159639493,"uuid":"634521770","full_name":"sw-tester/bdd-transform-values","owner":"sw-tester","description":"It helps to substitute tokens on Gherkin feature files from either Yaml or Json","archived":false,"fork":false,"pushed_at":"2023-06-27T14:41:57.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T19:44:53.886Z","etag":null,"topics":["bdd","gherkin","java","qa","qa-automation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sw-tester.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-30T12:02:33.000Z","updated_at":"2023-06-25T01:58:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a21a4b43-a0be-4596-8b62-50af768b8e42","html_url":"https://github.com/sw-tester/bdd-transform-values","commit_stats":null,"previous_names":["5v1988/bdd-transform-values","sw-tester/bdd-transform-values"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sw-tester%2Fbdd-transform-values","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sw-tester%2Fbdd-transform-values/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sw-tester%2Fbdd-transform-values/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sw-tester%2Fbdd-transform-values/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sw-tester","download_url":"https://codeload.github.com/sw-tester/bdd-transform-values/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241471784,"owners_count":19968273,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","gherkin","java","qa","qa-automation"],"created_at":"2025-01-12T19:43:01.625Z","updated_at":"2025-03-02T07:22:17.482Z","avatar_url":"https://github.com/sw-tester.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BDD-Transform-Values\n\n## Introduction\nThis library when run as a maven plugin will transform values on feature files in Cucumber-JVM based\nautomation, and in some cases, this helps to substitute values, mostly for the commonly used data from yaml\nfiles.\n\n## Objective\n\n— no hard-coded test data in feature files within automation projects\n\n— auto-generate date values (past or future) to stay relevant before test runs\n\n## Requirement\n\n[Maven](https://maven.apache.org/)\n\n[Cucumber-JVM](https://cucumber.io/docs/installation/java/)\n\n[Jayway's JsonPath()](https://github.com/json-path/JsonPath)\n\n## Installation\n\nAdd this block to `pom.xml`\n\n    \u003cplugins\u003e\n      ...\n      \u003cplugin\u003e\n        \u003cgroupId\u003eio.github.5v1988\u003c/groupId\u003e\n        \u003cartifactId\u003ebdd-transform-values-maven-plugin\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.3\u003c/version\u003e\n        \u003cexecutions\u003e\n          \u003cexecution\u003e\n            \u003cgoals\u003e\n              \u003cgoal\u003etransform-values\u003c/goal\u003e\n            \u003c/goals\u003e\n          \u003c/execution\u003e\n        \u003c/executions\u003e\n      \u003c/plugin\u003e\n      ...\n    \u003c/plugins\u003e\n\nBy default, this plugin will look for substituting values from the file: `token.yaml`.\nOptionally, the file with a different name can also be passed as follows:\n\n    \u003cplugin\u003e\n        ...\n        \u003cconfiguration\u003e\n            \u003ctokenFileName\u003eanother-file.yaml\u003c/tokenFileName\u003e\n        \u003c/configuration\u003e\n        ...\n    \u003c/plugin\u003e\n\nAfter adding this plugin dependency on `pom.xml`, along with surefire-plugin, `mvn test` either substitutes values from \nyaml file by matching the path or auto-generate like in case of date values. Please also note that\nit doesn't modify the original feature files, but the ones in build directory: `target`\n\n## Examples\n\n`token.yaml`\n\n```yaml\ntest-config:\n  url: https://test.com\naccount:\n  email: test@email.com\n  password: qa-test123!\n  name: Tommy\n```\n\n```gherkin\nFeature: Login feature\n\n  @example1\n  Scenario: To verify that the user logins successfully [without plugin]\n    Given User opens the app url: \"https://test.com\"\n    When User enters account details: \"test@email.com\" and \"qa-test123!\"\n    Then User verifies the name as : \"Tommy\" and date as \"06/26/2023\"\n\n  @example2\n  Scenario Outline: To verify that the user logins successfully [with plugin]\n    Given User opens the app url: \"[ type: token, path: test-config.url ]\"\n    When User enters account details: \"\u003cUserName\u003e\" and \"\u003cPassword\u003e\"\n    Then User verifies the name as : \"\u003cName\u003e\" and date as \"[ type: date, format: MM/dd/yyyy, delta: 0 ]\"\n\n    Examples:\n      | UserName                             | Password                                | Name                                |\n      | [ type: token, path: account.email ] | [ type: token, path: account.password ] | [ type: token, path: account.name ] |\n```\n\n## Explanation\n\n`[ type: token, path: account.name ]` =\u003e In this template, Jsonpath `account.name` gets \nvalue `Tommy` from the yaml file\n\n`[ type: date, format: MM/dd/yyyy, delta: -1 ]` =\u003e Yesterday's date in `MM/dd/yyyy` format\n\n`[ type: date, format: dd-MM-yyyy, delta: 1 ]` =\u003e Tomorrow's date in `dd-MM-yyyy` format\n\n## To-Do\n\n`[ type: random, format: mobile-number ]` =\u003e This template returns randomly generated mobile\nnumber. other formats could be last-name, full-name, mobile-number, address-line-1 etc. \n\n## How to help\n\nIf you come across an issue while using this plugin, do help to file a bug [here](https://github.com/5v1988/bdd-transform-values/issues)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsw-tester%2Fbdd-transform-values","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsw-tester%2Fbdd-transform-values","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsw-tester%2Fbdd-transform-values/lists"}