From c1451c223bb5668c8842e352a9eb90aaa3614779 Mon Sep 17 00:00:00 2001 From: "Andrey Mikhaylov (lolmaus)" Date: Mon, 15 Jan 2024 14:53:12 +0300 Subject: [PATCH] Import ember-testing first thing in virtual content --- packages/compat/src/compat-app-builder.ts | 4 ++-- packages/core/src/virtual-content.ts | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/compat/src/compat-app-builder.ts b/packages/compat/src/compat-app-builder.ts index dbffb9f4d..0667dbbd6 100644 --- a/packages/compat/src/compat-app-builder.ts +++ b/packages/compat/src/compat-app-builder.ts @@ -1381,7 +1381,6 @@ export class CompatAppBuilder { // packagers to understand. It's better to express it here as a direct // module dependency. let eagerModules: string[] = [ - 'ember-testing', explicitRelative(dirname(myName), this.topAppJSAsset(appFiles, prepared).relativePath), ]; @@ -1437,10 +1436,11 @@ let d = w.define; {{#each eagerModules as |eagerModule| ~}} - i("{{js-string-escape eagerModule}}"); + import("{{js-string-escape eagerModule}}"); {{/each}} + {{#if lazyRoutes}} w._embroiderRouteBundles_ = [ {{#each lazyRoutes as |route|}} diff --git a/packages/core/src/virtual-content.ts b/packages/core/src/virtual-content.ts index b0dea1d90..082118116 100644 --- a/packages/core/src/virtual-content.ts +++ b/packages/core/src/virtual-content.ts @@ -310,6 +310,7 @@ function renderAmdModules( return amdModulesTemplate({ amdModules, fastbootOnlyAmdModules: resolver.options.fastbootOnlyAmdModules, + isTest: type === 'amd-test-modules', }); } @@ -338,6 +339,10 @@ export default Object.assign( `) as (params: { dependencyModules: string[]; ownModules: { runtime: string; buildtime: string }[] }) => string; const amdModulesTemplate = compile(` +{{#if isTest}} + import 'ember-testing'; +{{/if}} + import { getGlobalConfig, macroCondition } from '@embroider/macros'; {{#each amdModules as |amdModule index|~}} @@ -365,7 +370,7 @@ const modules = { {{~/if}} export default modules; -`) as (params: { amdModules: AmdModule[]; fastbootOnlyAmdModules: AmdModule[] }) => string; +`) as (params: { amdModules: AmdModule[]; fastbootOnlyAmdModules: AmdModule[]; isTest: boolean }) => string; // meta['renamed-modules'] has mapping from classic filename to real filename. // This takes that and converts it to the inverst mapping from real import path