Skip to content

Added configuration sets to sample tests#273

Open
GrimA9e wants to merge 1 commit into
vividus-framework:mainfrom
GrimA9e:configuration_sets
Open

Added configuration sets to sample tests#273
GrimA9e wants to merge 1 commit into
vividus-framework:mainfrom
GrimA9e:configuration_sets

Conversation

@GrimA9e
Copy link
Copy Markdown
Contributor

@GrimA9e GrimA9e commented Apr 28, 2026

Summary by CodeRabbit

  • Chores

    • Reorganized test configuration into named configuration sets with a single active selector, simplifying execution across web, API, mobile, and desktop tests.
    • Updated CI workflows and build steps to use the new configuration-set selection mechanism for test and build runs.
  • Documentation

    • Updated local test execution instructions in the README to reflect the new configuration-set-based commands.

Review Change Stack

@GrimA9e GrimA9e requested a review from a team as a code owner April 28, 2026 12:47
@GrimA9e GrimA9e requested review from ikalinin1, valfirst and vkepin and removed request for a team April 28, 2026 12:47
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 28, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a2330a57-cb44-47b2-912e-5e57d557b185

📥 Commits

Reviewing files that changed from the base of the PR and between 859c364 and a325c25.

📒 Files selected for processing (6)
  • .github/workflows/electron-tests.yml
  • .github/workflows/gradle.yml
  • .github/workflows/mobile-test-run.yml
  • .github/workflows/test-run.yml
  • README.md
  • src/main/resources/properties/configuration.properties

📝 Walkthrough

Walkthrough

This PR migrates Vividus test configuration from flat properties to a named configuration-set model and updates CI workflows and README examples to use -Pvividus.configuration-set.active and per-set properties.

Changes

Configuration-Set Schema Migration

Layer / File(s) Summary
Configuration-Set Schema Definition
src/main/resources/properties/configuration.properties
Configuration properties switch from flat keys to a configuration-set structure with configuration-set.active and named sets: web-app, rest-api, ios-app, android-app, electron-app, each defining profiles, suites, and empty environments.
CI Workflow Configuration Updates
.github/workflows/electron-tests.yml, .github/workflows/mobile-test-run.yml, .github/workflows/test-run.yml, .github/workflows/gradle.yml
GitHub Actions Gradle invocations updated to pass -Pvividus.configuration-set.active=<set-name> (electron-app, ios-app, android-app, rest-api, web-app). The web-app profile is moved to configuration-set.web-app.profiles.
Local Test Execution Documentation
README.md
Local runStories command examples updated to use -Pvividus.configuration-set.active=rest-api and -Pvividus.configuration-set.active=web-app, removing prior configuration.suites/configuration.profiles flags.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Added configuration sets to sample tests' accurately summarizes the main change—migrating from flat configuration properties to a configuration-set-based structure across workflows, documentation, and configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Around line 14-16: Remove the stray one-cell table row that contains only "||"
between the REST API tests and Web Application tests rows in the README table;
locate the two table rows labelled "REST API tests" and "Web Application tests"
and delete the extra "||" line so the table remains a valid two-column Markdown
table and resolves markdownlint MD056.

In `@src/main/resources/properties/suite/web_app/suite.properties`:
- Line 5: Remove the global TLS bypass by deleting or commenting out the
property web.driver.chrome.command-line-arguments=--ignore-certificate-errors
from suite.properties; instead make the flag opt-in (e.g., leave the property
empty by default or introduce a separate opt-in property like
web.driver.chrome.allow-insecure=true) and update the Chrome driver setup code
to append --ignore-certificate-errors only when that opt-in property or an
environment/profile override is present so UI tests do not disable certificate
validation globally.

In `@src/main/resources/steps/web_app/ui.steps`:
- Line 4: The step using the locator xpath(//button[contains(.,'Log')]) is too
broad and can match "Logout"; replace it with an exact/normalized text matcher
that targets login variants only (e.g. use normalize-space(text()) equality for
"Log in" and "Login" or an OR between those exact normalized strings). Update
the step that contains the locator string xpath(//button[contains(.,'Log')]) to
use the tightened XPath with normalize-space(text()) comparisons for the login
button.

In `@src/main/resources/story/rest_api/Star` Wars API.story:
- Around line 7-12: The "Verify Luke's homeworld" scenario relies on
`${lukes-homeworld}` defined in another scenario; make it self-contained by
adding the step that sets `lukes-homeworld` inside the same scenario (for
example, perform the HTTP GET for the `people` resource that returns Luke's JSON
and save JSONPath `$.homeworld` to story variable `lukes-homeworld` using the
same "When I save JSON element value from `${response}` by JSON path
`$.homeworld` to story variable `lukes-homeworld`" action) before executing the
HTTP GET for `${lukes-homeworld}`, so the scenario (named "Verify Luke's
homeworld") can run independently.

In `@src/main/resources/story/web_app/Web` app login.story:
- Around line 9-13: Rename the misspelled scenario variable `usename` to
`username` everywhere in this story: update the initialization step that sets
`usename` (the `#{generate(Credentials.username)}` call) to set `username`,
change the login step that uses `${usename}` to `${username}`, and update the
assertion step that expects `Welcome, ${usename}!` to `Welcome, ${username}!` so
all references (initialization, When login to web app, and Then text exists) are
consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 81dda1f5-44d2-4685-a8d1-25c0d5977e4d

📥 Commits

Reviewing files that changed from the base of the PR and between d97ac03 and 702d0e2.

📒 Files selected for processing (12)
  • .github/workflows/electron-tests.yml
  • .github/workflows/mobile-test-run.yml
  • .github/workflows/test-run.yml
  • README.md
  • src/main/resources/properties/configuration.properties
  • src/main/resources/properties/suite/rest_api/suite.properties
  • src/main/resources/properties/suite/web_app/suite.properties
  • src/main/resources/steps/rest_api/schema.steps
  • src/main/resources/steps/web_app/ui.steps
  • src/main/resources/story/rest_api/Star Wars API.story
  • src/main/resources/story/web_app/Web app login.story
  • src/main/resources/story/web_app/Web application.story
💤 Files with no reviewable changes (1)
  • src/main/resources/story/web_app/Web application.story

Comment thread README.md
Comment thread src/main/resources/properties/suite/web_app/suite.properties
Comment thread src/main/resources/steps/web_app/ui.steps
Comment thread src/main/resources/story/rest_api/Star Wars API.story
Comment thread src/main/resources/story/web_app/Web app login.story Outdated
@GrimA9e GrimA9e force-pushed the configuration_sets branch 2 times, most recently from 683c282 to 1412a90 Compare April 28, 2026 13:23
Copy link
Copy Markdown
Contributor

@valfirst valfirst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be at least 3 commits/PRs:

  1. creation of configuration sets
  2. new web app tests
  3. refactoring and new rest api tests

@GrimA9e GrimA9e force-pushed the configuration_sets branch 3 times, most recently from eb36aa0 to 2da9b0f Compare April 29, 2026 15:11
@GrimA9e GrimA9e requested a review from valfirst April 30, 2026 07:27
configuration.environments=
configuration-set.active=

configuration-set.web-app.profiles=web/headless/chrome
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI should use headless Chrome, as headed Chrome is not available by default, BUT the local execution (see README.md) should use headed Chrome to visualise the execution process for users

Comment on lines +19 to +21
configuration-set.electron.profiles=desktop/electron,web/desktop/chrome
configuration-set.electron.suites=electron
configuration-set.electron.environments=
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
configuration-set.electron.profiles=desktop/electron,web/desktop/chrome
configuration-set.electron.suites=electron
configuration-set.electron.environments=
configuration-set.electron-app.profiles=desktop/electron,web/desktop/chrome
configuration-set.electron-app.suites=electron
configuration-set.electron-app.environments=

@GrimA9e GrimA9e force-pushed the configuration_sets branch from 859c364 to 4c988ca Compare May 15, 2026 08:51
@GrimA9e GrimA9e requested a review from valfirst May 15, 2026 08:52
@GrimA9e GrimA9e force-pushed the configuration_sets branch from 4c988ca to 64ad844 Compare May 15, 2026 09:04
@valfirst valfirst self-requested a review May 18, 2026 12:32
@valfirst
Copy link
Copy Markdown
Contributor

Build is failed

@GrimA9e GrimA9e force-pushed the configuration_sets branch from 64ad844 to a325c25 Compare May 18, 2026 13:42
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.

2 participants