{"id":20607715,"url":"https://github.com/open-feature/flagd-testbed","last_synced_at":"2025-03-06T17:25:57.951Z","repository":{"id":61779016,"uuid":"513280597","full_name":"open-feature/flagd-testbed","owner":"open-feature","description":"Shared test harness for flagd SDK testing, with Gherkin tests","archived":false,"fork":false,"pushed_at":"2025-02-20T14:24:49.000Z","size":39313,"stargazers_count":4,"open_issues_count":9,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-20T15:29:53.043Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://openfeature.dev","language":"Gherkin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-feature.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"2022-07-12T20:16:44.000Z","updated_at":"2025-02-20T14:24:36.000Z","dependencies_parsed_at":"2023-09-06T20:25:04.171Z","dependency_job_id":"85ad6b90-f3ec-465e-956d-dad8839f8c24","html_url":"https://github.com/open-feature/flagd-testbed","commit_stats":null,"previous_names":["open-feature/flagd-testbed","open-feature/test-harness"],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-feature%2Fflagd-testbed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-feature%2Fflagd-testbed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-feature%2Fflagd-testbed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-feature%2Fflagd-testbed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-feature","download_url":"https://codeload.github.com/open-feature/flagd-testbed/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242252537,"owners_count":20097223,"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":[],"created_at":"2024-11-16T10:08:23.221Z","updated_at":"2025-03-06T17:25:57.931Z","avatar_url":"https://github.com/open-feature.png","language":"Gherkin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenFeature Test Harness\n\nThis repository contains a docker image to support the [gherkin suites](https://github.com/open-feature/spec/blob/main/specification/appendix-b-gherkin-suites.md) in the OpenFeature specification.\n\n## flagd-testbed container\n\nThe _flagd-testbed_ container is a docker image built on flagd, which essentially just adds a simple set of flags for the purposes of testing OpenFeature SDKs.\n`testing-flags.json` contains a set of flags consistent with the [evaluation feature](https://github.com/open-feature/spec/blob/main/specification/assets/gherkin/evaluation.feature).\n`change-flag.sh` runs in the test container generates a file `changing-flag.json`, which contains a flag that changes once every seconds, allowing to easily test change events.\n\nSee the [flagd docs](https://flagd.dev/) for more information on flagd.\n\n### SSL\n\nThe _flagd-testbed-ssl_ container is based on _flagd-testbed_ but replaces all the certificates for SSL testing with a custom root CA.\nWithin the SSL folder you will find all the necessary OpenSSL files, and the commands used for generation.\nPlease do not use this CA in any kind of production environment.\n\n## Gherkin test suite\n\nThe [gherkin/](gherkin/) dir includes a set of [_gherkin_](https://cucumber.io/docs/gherkin/) tests that define expected behavior associated with the configurations defined in the flagd-testbed (see [flags/](flags/)).\nCombined with the _flagd-provider_ for the associated SDK and the flagd-testbed, these comprise a complete integration test suite.\n\nIncluded suites:\n\n[evaluation.feature](gherkin/evaluation.feature) includes tests relevant to flagd and all flagd providers:\n* default value (zero-value) handling (some proto3 implementations handle these inconsistently).\n* basic event handling\n\n[targeting.feature](gherkin/targeting.feature) includes tests relevant to flagd and in-process providers:\n* custom JSONLogic operators (`starts_with`, `ends_with`, `fractional`, `sem_ver`)\n* evaluator reuse via `$ref`\n\n\n### Lint Gherkin files\n\nThe Gherkin files structure can be linted using [gherkin-lint](https://github.com/vsiakka/gherkin-lint). The following commands require Node.js 10 or later.\n\n1. npm install\n1. npm run gherkin-lint\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-feature%2Fflagd-testbed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-feature%2Fflagd-testbed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-feature%2Fflagd-testbed/lists"}