---
number: 7459
title: Add RMA helper utilities
author: Aki-07
state: MERGED
createdAt: '2025-10-11T05:19:24Z'
updatedAt: '2025-10-11T09:06:26Z'
closedAt: '2025-10-11T08:40:34Z'
mergedAt: '2025-10-11T08:40:34Z'
head: feat/component-rma-helpers
base: dev
url: 'https://github.com/neomjs/neo/pull/7459'
---
Please make sure to read the Contributing Guidelines:

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


<!-- PULL REQUEST TEMPLATE -->
<!-- (Update "[ ]" to "[x]" to check a box) -->

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

- [ ] Bugfix
- [x] Feature
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:

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

- [ ] Yes
- [x] No

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

**The PR fulfills these requirements:**

- [x] It's submitted to the `dev` branch, _not_ the `main` branch
- [x] 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:
- [x] 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)


## Comments

### `@tobiu` commented on 2025-10-11T08:40:28Z

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.
>   ```javascript
>        * 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         },
>    ```
>    2. 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.

---

