Skip to content

test: Set up environment to write e2e tests#66

Merged
NeaguGeorgiana23 merged 31 commits intomainfrom
e2e
Feb 26, 2026
Merged

test: Set up environment to write e2e tests#66
NeaguGeorgiana23 merged 31 commits intomainfrom
e2e

Conversation

@NeaguGeorgiana23
Copy link
Copy Markdown
Contributor

@NeaguGeorgiana23 NeaguGeorgiana23 commented Feb 17, 2026

This PR

Tries to set up cucumber and the environment needed to write the "step" files.

Related Issues

Fixes #58

Notes

Only Gherkin tests that are for the MVP are being run.

Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @NeaguGeorgiana23, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request establishes the foundational environment for implementing end-to-end tests using the Cucumber-Cpp framework. It integrates the OpenFeature specification as a Git submodule to access Gherkin feature files and configures the Bazel build system to include Cucumber-Cpp. The changes also introduce foundational C++ classes and build targets necessary for defining and running e2e tests, enabling a robust testing environment for the SDK.

Highlights

  • OpenFeature Specification Integration: Integrated the OpenFeature specification as a Git submodule, providing Gherkin feature files essential for end-to-end testing.
  • Cucumber-Cpp Dependency: Introduced Cucumber-Cpp as a new Bazel dependency, enabling behavior-driven development (BDD) testing capabilities within the project.
  • E2E Test Infrastructure Setup: Established a new test/e2e directory with comprehensive Bazel build rules for e2e test infrastructure, including custom providers and state management components.
  • Initial Gherkin Step Definitions: Added initial Gherkin step definitions and a ScenarioWorld to facilitate the writing and execution of e2e tests using the Cucumber framework.
Changelog
  • .gitmodules
    • Added the spec submodule configuration, pointing to the OpenFeature specification repository.
  • BUILD
    • Defined a filegroup named openfeature_gherkin_spec_features to collect Gherkin feature files from the spec submodule.
  • MODULE.bazel
    • Added a bazel_dep entry for cucumber-cpp version 0.8.0.bcr.1.
  • spec
    • Added the spec submodule, initialized to a specific commit.
  • test/e2e/BUILD
    • Configured Bazel cc_library rules for context_storing_provider, flag, and state.
    • Added a cc_test rule for openfeature_gherkin_e2e_tests, linking Cucumber-Cpp and GTest.
  • test/e2e/context_storing_provider.cpp
    • Implemented the ContextStoringProvider class, which stores the last evaluation context for testing purposes.
  • test/e2e/context_storing_provider.h
    • Declared the ContextStoringProvider class, a custom FeatureProvider designed for e2e tests.
  • test/e2e/flag.h
    • Defined the Flag struct to represent feature flag details within e2e tests.
  • test/e2e/state.h
    • Defined the ScenarioState struct to manage shared state across Gherkin steps in a scenario.
  • test/e2e/steps/BUILD
    • Configured Bazel cc_library rules for gherkin_step_definitions, linking necessary OpenFeature SDK components and Cucumber-Cpp.
  • test/e2e/steps/minimal_steps.cpp
    • Implemented the Cucumber-Cpp ScenarioWorld for shared state management.
    • Added an initial Gherkin GIVEN step to register a stable provider.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist
Copy link
Copy Markdown

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@NeaguGeorgiana23 NeaguGeorgiana23 marked this pull request as ready for review February 23, 2026 15:10
@NeaguGeorgiana23 NeaguGeorgiana23 requested review from a team as code owners February 23, 2026 15:10
@NeaguGeorgiana23 NeaguGeorgiana23 changed the title Set up environment to write e2e tests test: Set up environment to write e2e tests Feb 24, 2026
Comment thread test/e2e/state.h Outdated
Comment thread test/e2e/context_storing_provider.cpp Outdated
Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
@oxddr
Copy link
Copy Markdown
Contributor

oxddr commented Feb 25, 2026

As discussed offline, please import only part of the spec for which we have passing tests. For those subtests, that are not yet supported (i.e. Evaluation with details), please provide some placeholders so they are passing and leave a TODO to support them later.

Comment thread test/e2e/steps/minimal_steps.cpp
Comment thread test/e2e/steps/minimal_steps.cpp Outdated
@NeaguGeorgiana23 NeaguGeorgiana23 merged commit 0bf28c9 into main Feb 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create e2e tests

3 participants