Update fixturify-project to ^7.1.3 - #11043
#11043Open
NullVoxPopuli-ai-agent wants to merge 2 commits into
ember-cli:masterember-cli/ember-cli:masterfrom
NullVoxPopuli-ai-agent:update-fixturify-projectNullVoxPopuli-ai-agent/ember-cli:update-fixturify-projectCopy head branch name to clipboard
Open
Update fixturify-project to ^7.1.3#11043NullVoxPopuli-ai-agent wants to merge 2 commits intoember-cli:masterember-cli/ember-cli:masterfrom NullVoxPopuli-ai-agent:update-fixturify-projectNullVoxPopuli-ai-agent/ember-cli:update-fixturify-projectCopy head branch name to clipboard
NullVoxPopuli-ai-agent wants to merge 2 commits into
ember-cli:masterember-cli/ember-cli:masterfrom
NullVoxPopuli-ai-agent:update-fixturify-projectNullVoxPopuli-ai-agent/ember-cli:update-fixturify-projectCopy head branch name to clipboard
Conversation
fixturify-project changed significantly between v2 and v7, so the test
helper and its consumers are updated to the new API:
- the class is now a named export: `const { Project } = require('fixturify-project')`
- `writeSync()` was removed in favor of the async `write()`, so
`buildProjectModel()` / `buildProjectModelForInRepoAddon()` are now
async and all call sites `await` them
- `project.root` was removed; `project.baseDir` is now the project
directory itself (files are no longer nested under a `<name>/` folder)
- `toJSON()` was removed upstream; instead of serializing in-repo addons
into the parent's `files`, the helper now tracks them and writes each
one into `lib/<name>` with the regular `write()` machinery, which also
removes the file-moving workarounds in the per-bundle-addon-cache
fixture
- dependencies created through `addDependency`/`addDevDependency` are
constructed as EmberCLIFixturifyProject instances (upstream hardcodes
its own Project class), keeping nested `addAddon` /
`addReferenceDependency` working
- 'reference' dependencies are injected via a small `pkgJSONWithDeps`
override, since upstream has no public hook for customizing the
generated `package.json`
- upstream now writes `devDependencies` to `node_modules` after
`dependencies`, so when the same package name exists in both, the
devDependency copy wins on disk (updated expectations in
instantiate-addons-test)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`prettier --check` has been failing on master because of this file, which makes the linting CI job red. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
NullVoxPopuli-ai-agent
force-pushed
the
update-fixturify-project
branch
from
July 7, 2026 15:34
fc2c7b7 to
08b24a0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates
fixturify-projectfrom^2.1.1to^7.1.3(5 majors). The API changed substantially along the way, so the test helper and its consumers are updated to the new API. Net effect on the helper is a code reduction — the new upstreamwrite()machinery replaces the helper's hand-rolled serialization.Upstream breaking changes handled
const { Project } = require('fixturify-project')), andproject.rootwas removed —project.baseDiris now the project directory itself (fixture files are no longer nested under an extra<name>/folder inside the tmp dir).writeSync()andtoJSON()were removed; writing is now the asyncwrite().filespassed to the constructor are deep-merged (no impact on these tests).Changes
tests/helpers/fixturify-project.jswriteSync()→ asyncwrite();buildProjectModel()/buildProjectModelForInRepoAddon()are now async and read the generatedpackage.jsonback from disk.files(that relied on the removedtoJSON()); the helper now tracks them and writes each one intolib/<name>using the regularwrite()machinery during the parent'swrite(). This deleted the old serialization code and, as a bonus, the file-moving workarounds in the per-bundle-addon-cache fixture helper.addDependency/addDevDependencyare constructed asEmberCLIFixturifyProjectinstances and handed to upstream via its publicaddDependency(project)overload (upstream's internaladdDephardcodes its ownProjectclass since v5). This keeps nested usage likeaddon.addAddon(...)andengine.addReferenceDependency(...)working.pkgJSONWithDeps()override. This overrides a private upstream method; there is currently no public hook for customizing the generatedpackage.json.Tests
writeSync()/buildProjectModel()call sites are nowawaited.tests/helpers/per-bundle-addon-cache.js: the standard cache fixture now defines the sharedtest-addon-dep/test-engine-depdirectly inPROJECT/lib(and removes them from the project'sember-addon.paths) instead of creating them nested and moving their serialized files around — same disk layout, much simpler.package-info-cache-test: thetoJSONmonkeypatch that left an emptynode_modules/ember-resolverfolder is replaced by explicitly emptying that directory afterwrite(). Path assertions usingfixturifyProject.rootnow usebaseDir.proxy-test:expect(() => buildProjectModel()).to.throw(...)becameawait expect(...).to.be.rejectedWith(...)since the model builder is now async.Behavioral change worth flagging
Upstream now writes
devDependenciestonode_modulesafterdependencies(v2'stoJSONdid the opposite), so when the same package name exists in both with different versions, the devDependency copy is what ends up on disk. The duplicated-addon expectations ininstantiate-addons-testwere updated from1.0.0to2.0.0accordingly (the addon ordering that test locks down is unchanged).Also included
RELEASE.md(separate commit) —prettier --checkhas been failing on master because of it, which keeps the linting CI job red.Testing
node tests/runner tests/unit/**/*-test.js: 979 passing, 0 failingpnpm lint(prettier + eslint): passing