emberjs / emberjs/ember-test-helpers

Extract helpers to normal Node package

Open
#834 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
188
Forks
254
PR merge metrics
No merged PRs in 30d

Description

Met with @rwjblue and @rahilvora today and we discussed a plan to extract the test helpers in this addon to make them usable as a standard Node package. This will make them more broadly usable in general.

It will _not_ affect existing users of the package or the package's public API. The plan is to extract the helpers to a normal node package, then make the existing `@ember/test-helpers` package use that package and expose it as an Ember addon.

Action items:

- [ ] Come up with a name for the package. Something Ember agnostic may be nice, because the package could be useful all over the ecosystem.
- [ ] Add yarn workspaces to this project, put the current codebase in one sub package, and add a new one. We should make sure the root package and the new child are both private, until we're ready to publish it.
- [ ] Extract the helpers to the new sub package. The test setup should be more generic here as well (e.g. Promise implementation should default to native Promise).
- [ ] Update the addon to import the helpers, and setup the Ember configs (e.g. use RSVP.Promise for promises).

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the current test-helper codebase and package structure. Work through the proposed package name, yarn workspace layout, generic test setup, and addon integration in the listed action items. Done means the helpers are extracted into a private Node subpackage while the existing addon continues exposing its public API with Ember-specific configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
testing-qa, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.