LearnNewsExamplesServices
Frontmatter
titleAdd RMA helper utilities
authorAki-07
stateMerged
createdAtOct 11, 2025, 7:19 AM
updatedAtOct 11, 2025, 11:06 AM
closedAtOct 11, 2025, 10:40 AM
mergedAtOct 11, 2025, 10:40 AM
branchesdevfeat/component-rma-helpers
urlhttps://github.com/neomjs/neo/pull/7459
Merged
Aki-07
Aki-07 commented on Oct 11, 2025, 7:19 AM

Please make sure to read the Contributing Guidelines:

https://github.com/neomjs/neo/blob/dev/CONTRIBUTING.md

Fixes #7438 What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

  • It's submitted to the dev branch, not the main branch
  • When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Summary

  • add a minimal “empty viewport” Neo.mjs app under test/apps/component-test-app/ so component Playwright tests have an isolated host (test/apps/component-test-app/app.mjs:1, test/apps/component-test-app/index.html:1)
  • wire the dedicated Playwright component config to load that app, enforcing serial execution and pointing the dev server at the new entry (test/playwright/playwright.config.component.mjs:1)
tobiu
tobiu commented on Oct 11, 2025, 10:40 AM

Thanks for your contribution, accepted. I will do some minor changes afterwards. Input from Gemini:

✦ PR Review: ticket-create-rma-test-helpers

This is a fantastic first contribution, thank you so much! It's a huge help in getting our new Playwright test suite off the ground. The implementation is clean and very close to perfect.

To make your first contribution as smooth as possible, we're going to merge this PR as is and handle a couple of minor polishing items ourselves. We wanted to share the details with you for future reference:

  1. Functional Detail in getComponentConfig: The remote method Neo.worker.App.getConfigs() expects its payload to be an object with a keys property. The current implementation sends keyOrKeys instead, which would prevent it from working as expected.
     * Current Code in `test/playwright/util/RmaHelpers.mjs`:

1 async getComponentConfig(id, keyOrKeys) { 2 return Neo.worker.App.getConfigs({ 3 id, 4 keyOrKeys // This property should be named 'keys' 5 }); 6 }, * Required Change:

1 async getComponentConfig(id, keyOrKeys) { 2 return Neo.worker.App.getConfigs({ 3 id, 4 keys: keyOrKeys // Renaming the property to 'keys' 5 }); 6 },

  1. Style Detail (Filename Casing): The ticket suggested the filename rma-helpers.mjs (kebab-case), while the PR uses RmaHelpers.mjs (PascalCase). We'll rename the file to align with the conventions of other utility scripts in that directory.

Again, these are very minor points. We'll take care of them.

Excellent work, and we're thrilled to have you contributing to the project. We look forward to your next PR! Welcome to the Neo.mjs team.