@abgov/nx-adsp 13.18.2 → 13.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/generators/angular-app/angular-app.js +28 -17
- package/src/generators/angular-app/angular-app.js.map +1 -1
- package/src/generators/express-service/express-service.js +4 -5
- package/src/generators/express-service/express-service.js.map +1 -1
- package/src/generators/express-service/express-service.spec.ts +4 -3
- package/src/generators/express-service/files/AGENTS.md__tmpl__ +5 -3
- package/src/generators/init/init.js +18 -0
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/init.spec.ts +27 -0
- package/src/generators/vue-app/vue-app.spec.ts +17 -8
- package/src/generators/vue-components/files/src/lib/patterns/AppHeader.vue__tmpl__ +3 -2
- package/src/generators/vue-components/files/src/lib/patterns/WorkspaceTable.vue__tmpl__ +1 -0
- package/src/generators/vue-components/vue-components.spec.ts +3 -0
- package/src/generators/vue-detail-view/vue-detail-view.spec.ts +5 -0
- package/src/index.js +1 -0
package/package.json
CHANGED
|
@@ -68,7 +68,7 @@ function addFiles(host, options) {
|
|
|
68
68
|
}
|
|
69
69
|
function default_1(host, options) {
|
|
70
70
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
72
72
|
// Checked before normalizeOptions, which resolves ADSP auth and can trigger
|
|
73
73
|
// an interactive login — a missing peer shouldn't surface only after that.
|
|
74
74
|
const { applicationGenerator: initAngular } = yield Promise.resolve().then(() => require('@nx/angular/generators')).catch(() => {
|
|
@@ -83,6 +83,17 @@ function default_1(host, options) {
|
|
|
83
83
|
directory: normalizedOptions.projectRoot,
|
|
84
84
|
skipFormat: true,
|
|
85
85
|
});
|
|
86
|
+
// TypeScript 6 defaults noUncheckedSideEffectImports to true, which causes
|
|
87
|
+
// TS2882 on side-effect imports in test-setup.ts (zone.js/dist/zone-testing,
|
|
88
|
+
// jest-preset-angular, @angular/localize/init). Pin false in tsconfig.base.json
|
|
89
|
+
// so the generated Angular workspace compiles without needing the nx migrate
|
|
90
|
+
// TS6 migration to have been run in the consuming workspace first.
|
|
91
|
+
if (host.exists('tsconfig.base.json')) {
|
|
92
|
+
const rootTsconfig = (0, devkit_1.readJson)(host, 'tsconfig.base.json');
|
|
93
|
+
if (((_a = rootTsconfig.compilerOptions) === null || _a === void 0 ? void 0 : _a.noUncheckedSideEffectImports) === undefined) {
|
|
94
|
+
(0, devkit_1.writeJson)(host, 'tsconfig.base.json', Object.assign(Object.assign({}, rootTsconfig), { compilerOptions: Object.assign(Object.assign({}, rootTsconfig.compilerOptions), { noUncheckedSideEffectImports: false }) }));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
86
97
|
// Let the Playwright e2e target the deployed URL (BASE_URL) in CI instead of
|
|
87
98
|
// always starting a local dev server — see the nx-oc pipeline's e2e jobs.
|
|
88
99
|
(0, quality_1.guardPlaywrightWebServer)(host, `${normalizedOptions.projectRoot}-e2e`);
|
|
@@ -122,11 +133,11 @@ function default_1(host, options) {
|
|
|
122
133
|
const config = (0, devkit_1.readProjectConfiguration)(host, options.name);
|
|
123
134
|
// Remove the generated fileReplacements for production — single environment.ts
|
|
124
135
|
// is pre-populated from tenant config at generation time.
|
|
125
|
-
if ((
|
|
136
|
+
if ((_c = (_b = config.targets.build.configurations) === null || _b === void 0 ? void 0 : _b.production) === null || _c === void 0 ? void 0 : _c.fileReplacements) {
|
|
126
137
|
delete config.targets.build.configurations.production.fileReplacements;
|
|
127
138
|
}
|
|
128
139
|
// keycloak-js pushes the initial bundle above Angular's default 1 MB error budget.
|
|
129
|
-
if ((
|
|
140
|
+
if ((_d = config.targets.build.configurations) === null || _d === void 0 ? void 0 : _d.production) {
|
|
130
141
|
config.targets.build.configurations.production.budgets = [
|
|
131
142
|
{ type: 'initial', maximumWarning: '2mb', maximumError: '4mb' },
|
|
132
143
|
{
|
|
@@ -152,17 +163,17 @@ function default_1(host, options) {
|
|
|
152
163
|
// Lets the sandbox generator ensure the paired backend's Service exists before this
|
|
153
164
|
// frontend's nginx starts — see utils/paired-project.ts for why.
|
|
154
165
|
if (normalizedOptions.pairedProjectTag) {
|
|
155
|
-
config.tags = [...((
|
|
166
|
+
config.tags = [...((_e = config.tags) !== null && _e !== void 0 ? _e : []), normalizedOptions.pairedProjectTag];
|
|
156
167
|
}
|
|
157
168
|
config.tags = [
|
|
158
|
-
...((
|
|
169
|
+
...((_f = config.tags) !== null && _f !== void 0 ? _f : []),
|
|
159
170
|
...(0, nx_oc_1.adspProjectTags)(normalizedOptions.env, normalizedOptions.adsp.tenant).filter((tag) => { var _a; return !((_a = config.tags) !== null && _a !== void 0 ? _a : []).includes(tag); }),
|
|
160
171
|
];
|
|
161
172
|
(0, devkit_1.updateProjectConfiguration)(host, options.name, config);
|
|
162
173
|
(0, quality_1.addSemgrepTarget)(host, options.name);
|
|
163
174
|
yield (0, devkit_1.formatFiles)(host);
|
|
164
175
|
if (normalizedOptions.adsp) {
|
|
165
|
-
const accessToken = (
|
|
176
|
+
const accessToken = (_g = normalizedOptions.adsp.accessToken) !== null && _g !== void 0 ? _g : options.accessToken;
|
|
166
177
|
const clientId = `urn:ads:${normalizedOptions.adsp.tenant}:${normalizedOptions.projectName}`;
|
|
167
178
|
yield (0, keycloak_admin_1.ensurePublicClient)(normalizedOptions.adsp.accessServiceUrl, normalizedOptions.adsp.tenantRealm, clientId, accessToken);
|
|
168
179
|
if (options.serviceClientId) {
|
|
@@ -171,17 +182,17 @@ function default_1(host, options) {
|
|
|
171
182
|
}
|
|
172
183
|
}
|
|
173
184
|
if (normalizedOptions.adsp && !options.skipAgent) {
|
|
174
|
-
const accessToken = (
|
|
175
|
-
const appComponentTs = (
|
|
176
|
-
.read(`${normalizedOptions.projectRoot}/src/app/app.component.ts`)) === null ||
|
|
177
|
-
const appComponentHtml = (
|
|
178
|
-
.read(`${normalizedOptions.projectRoot}/src/app/app.component.html`)) === null ||
|
|
179
|
-
const appConfigTs = (
|
|
180
|
-
.read(`${normalizedOptions.projectRoot}/src/app/app.config.ts`)) === null ||
|
|
181
|
-
const appRoutesTs = (
|
|
182
|
-
.read(`${normalizedOptions.projectRoot}/src/app/app.routes.ts`)) === null ||
|
|
183
|
-
const environmentTs = (
|
|
184
|
-
.read(`${normalizedOptions.projectRoot}/src/environments/environment.ts`)) === null ||
|
|
185
|
+
const accessToken = (_h = normalizedOptions.adsp.accessToken) !== null && _h !== void 0 ? _h : options.accessToken;
|
|
186
|
+
const appComponentTs = (_k = (_j = host
|
|
187
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.component.ts`)) === null || _j === void 0 ? void 0 : _j.toString()) !== null && _k !== void 0 ? _k : '';
|
|
188
|
+
const appComponentHtml = (_m = (_l = host
|
|
189
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.component.html`)) === null || _l === void 0 ? void 0 : _l.toString()) !== null && _m !== void 0 ? _m : '';
|
|
190
|
+
const appConfigTs = (_p = (_o = host
|
|
191
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.config.ts`)) === null || _o === void 0 ? void 0 : _o.toString()) !== null && _p !== void 0 ? _p : '';
|
|
192
|
+
const appRoutesTs = (_r = (_q = host
|
|
193
|
+
.read(`${normalizedOptions.projectRoot}/src/app/app.routes.ts`)) === null || _q === void 0 ? void 0 : _q.toString()) !== null && _r !== void 0 ? _r : '';
|
|
194
|
+
const environmentTs = (_t = (_s = host
|
|
195
|
+
.read(`${normalizedOptions.projectRoot}/src/environments/environment.ts`)) === null || _s === void 0 ? void 0 : _s.toString()) !== null && _t !== void 0 ? _t : '';
|
|
185
196
|
yield (0, agent_1.confirmAfterAgentInterrupt)(yield (0, agent_1.consultAgent)(normalizedOptions.adsp.directoryServiceUrl, accessToken, {
|
|
186
197
|
projectName: normalizedOptions.projectName,
|
|
187
198
|
projectType: 'angular-app',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/angular-app/angular-app.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"angular-app.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/angular-app/angular-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,11 +127,10 @@ function default_1(host, options) {
|
|
|
127
127
|
const accessToken = (_e = normalizedOptions.accessToken) !== null && _e !== void 0 ? _e : normalizedOptions.adsp.accessToken;
|
|
128
128
|
const clientSecret = yield (0, keycloak_admin_1.ensureServiceClient)(normalizedOptions.adsp.accessServiceUrl, normalizedOptions.adsp.tenantRealm, clientId, accessToken);
|
|
129
129
|
if (clientSecret) {
|
|
130
|
-
// .env.local, not .env: CLIENT_SECRET is a generated, local-only value —
|
|
131
|
-
// same tier `nx dev-db` already uses for DATABASE_URL/MONGODB_URI
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// needed here at all. .env itself is left alone: it holds non-secret,
|
|
130
|
+
// .env.local, not .env: CLIENT_SECRET is a generated, local-only value —
|
|
131
|
+
// the same tier `nx dev-db` already uses for DATABASE_URL/MONGODB_URI.
|
|
132
|
+
// .env.local is gitignored by nx-adsp:init (called above), which this
|
|
133
|
+
// generator always runs. .env itself is left alone: it holds non-secret,
|
|
135
134
|
// developer-owned config too (KEYCLOAK_ROOT_URL, DIRECTORY_URL, etc.) and
|
|
136
135
|
// shouldn't be blanket-gitignored.
|
|
137
136
|
const envLocalPath = `${normalizedOptions.projectRoot}/.env.local`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-service.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/express-service/express-service.ts"],"names":[],"mappings":";;AAwEA,
|
|
1
|
+
{"version":3,"file":"express-service.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/express-service/express-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -286,13 +286,14 @@ describe('Express Service Generator', () => {
|
|
|
286
286
|
expect(host.exists('apps/test/.env')).toBeFalsy();
|
|
287
287
|
}, 60000);
|
|
288
288
|
|
|
289
|
-
it('
|
|
289
|
+
it('ensures .env.local is gitignored when writing the provisioned secret', async () => {
|
|
290
290
|
keycloakAdminMock.ensureServiceClient.mockResolvedValueOnce('super-secret');
|
|
291
291
|
const host = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
|
|
292
|
-
const gitignoreBefore = host.read('.gitignore')?.toString() ?? '';
|
|
293
292
|
await generator(host, { ...options, accessToken: 'test-token' });
|
|
294
293
|
|
|
295
|
-
|
|
294
|
+
const gitignore = host.read('.gitignore')?.toString() ?? '';
|
|
295
|
+
expect(gitignore).toContain('.env.local');
|
|
296
|
+
expect(gitignore).toContain('.env.*.local');
|
|
296
297
|
}, 60000);
|
|
297
298
|
|
|
298
299
|
it('does not overwrite or duplicate an existing CLIENT_SECRET in .env.local', async () => {
|
|
@@ -419,10 +419,12 @@ arbitrary UID; it logs `No migrations to apply.` and exits 0 when `drizzle/` is
|
|
|
419
419
|
empty. The `drizzle/` folder is shipped into the build output as a build asset.
|
|
420
420
|
|
|
421
421
|
**Sandbox** (`nx run <%= projectName %>:sandbox`) — nothing to set up. The
|
|
422
|
-
sandbox target provisions a shared `sandbox-postgres` instance
|
|
422
|
+
sandbox target provisions a shared `sandbox-postgres` Postgres instance (via the
|
|
423
|
+
CloudNativePG operator when available, plain Deployment otherwise), creates this
|
|
423
424
|
service's `<%= projectName %>_sandbox` database, and injects `DATABASE_URL`
|
|
424
|
-
(sourced from the `sandbox-postgres-
|
|
425
|
-
and the app. If a deploy fails on migrations, read
|
|
425
|
+
(sourced from the `sandbox-postgres-app` secret — keys `username` and `password`)
|
|
426
|
+
into both the init container and the app. If a deploy fails on migrations, read
|
|
427
|
+
the init container's logs:
|
|
426
428
|
|
|
427
429
|
```bash
|
|
428
430
|
oc logs -n <namespace> <pod> -c <%= projectName %>-migrate
|
|
@@ -4,6 +4,23 @@ exports.default = default_1;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const quality_1 = require("../../utils/quality");
|
|
7
|
+
// express-service writes CLIENT_SECRET, DATABASE_URL, and MONGODB_URI to
|
|
8
|
+
// .env.local — these must be gitignored before any generator run can commit.
|
|
9
|
+
// Idempotent: no-op if the patterns are already present.
|
|
10
|
+
const ENV_LOCAL_GITIGNORE_PATTERNS = ['.env.local', '.env.*.local'];
|
|
11
|
+
function ensureEnvLocalGitignored(host) {
|
|
12
|
+
const path = '.gitignore';
|
|
13
|
+
if (!host.exists(path)) {
|
|
14
|
+
host.write(path, `${ENV_LOCAL_GITIGNORE_PATTERNS.join('\n')}\n`);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const existing = host.read(path).toString();
|
|
18
|
+
const existingLines = new Set(existing.split('\n').map((l) => l.trim()));
|
|
19
|
+
const missing = ENV_LOCAL_GITIGNORE_PATTERNS.filter((p) => !existingLines.has(p));
|
|
20
|
+
if (missing.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
host.write(path, `${existing.replace(/\n+$/, '')}\n\n${missing.join('\n')}\n`);
|
|
23
|
+
}
|
|
7
24
|
// Every app/service generator (express-service, react-app, angular-app,
|
|
8
25
|
// vue-app) calls this as one of its own steps — it's also the standalone
|
|
9
26
|
// entry point for the same workspace-root setup. That setup previously only
|
|
@@ -15,6 +32,7 @@ const quality_1 = require("../../utils/quality");
|
|
|
15
32
|
// workspace-root concern.
|
|
16
33
|
function default_1(host) {
|
|
17
34
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
ensureEnvLocalGitignored(host);
|
|
18
36
|
(0, quality_1.addAdspMcpServer)(host);
|
|
19
37
|
(0, quality_1.addVsCodeSettings)(host);
|
|
20
38
|
yield (0, devkit_1.formatFiles)(host);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/init/init.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/nx-adsp/src/generators/init/init.ts"],"names":[],"mappings":";;AAmCA,4BAKC;;AAxCD,uCAA+C;AAC/C,iDAA0E;AAE1E,yEAAyE;AACzE,6EAA6E;AAC7E,yDAAyD;AACzD,MAAM,4BAA4B,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAEpE,SAAS,wBAAwB,CAAC,IAAU;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAC7B,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,IAAI,CAAC,KAAK,CACR,IAAI,EACJ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAC7D,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,oEAAoE;AACpE,6EAA6E;AAC7E,2EAA2E;AAC3E,0BAA0B;AAC1B,mBAA+B,IAAU;;QACvC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAA,0BAAgB,EAAC,IAAI,CAAC,CAAC;QACvB,IAAA,2BAAiB,EAAC,IAAI,CAAC,CAAC;QACxB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA"}
|
|
@@ -47,6 +47,33 @@ describe('nx-adsp init generator', () => {
|
|
|
47
47
|
logSpy.mockRestore();
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
+
it('adds .env.local and .env.*.local to .gitignore', async () => {
|
|
51
|
+
await generator(host);
|
|
52
|
+
|
|
53
|
+
const gitignore = host.read('.gitignore').toString();
|
|
54
|
+
expect(gitignore).toContain('.env.local');
|
|
55
|
+
expect(gitignore).toContain('.env.*.local');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('does not duplicate .env.local if it is already in .gitignore', async () => {
|
|
59
|
+
host.write('.gitignore', '.env.local\n.env.*.local\n');
|
|
60
|
+
|
|
61
|
+
await generator(host);
|
|
62
|
+
|
|
63
|
+
const gitignore = host.read('.gitignore').toString();
|
|
64
|
+
expect(gitignore.split('.env.local').length - 1).toBe(1);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('appends .env.local to an existing .gitignore that does not have it', async () => {
|
|
68
|
+
host.write('.gitignore', 'node_modules\ndist\n');
|
|
69
|
+
|
|
70
|
+
await generator(host);
|
|
71
|
+
|
|
72
|
+
const gitignore = host.read('.gitignore').toString();
|
|
73
|
+
expect(gitignore).toContain('node_modules');
|
|
74
|
+
expect(gitignore).toContain('.env.local');
|
|
75
|
+
});
|
|
76
|
+
|
|
50
77
|
it('writes shared VS Code settings, standalone', async () => {
|
|
51
78
|
await generator(host);
|
|
52
79
|
|
|
@@ -405,24 +405,33 @@ describe('Vue App Generator', () => {
|
|
|
405
405
|
expect(app).toContain('goa-button-group');
|
|
406
406
|
}, 30000);
|
|
407
407
|
|
|
408
|
-
it('renders the sign-in button in the app header (needs the "utilities" slot)', async () => {
|
|
409
|
-
// goa-app-header
|
|
410
|
-
//
|
|
411
|
-
// "
|
|
412
|
-
//
|
|
413
|
-
//
|
|
414
|
-
// just feeds its named Vue slot. Regression guard for exactly that gap,
|
|
415
|
-
// now spanning both files since AppHeader was extracted out of App.vue.
|
|
408
|
+
it('renders the sign-in button in the app header (needs version="2" and the "utilities" slot)', async () => {
|
|
409
|
+
// goa-app-header defaults to version="1", which does not render the
|
|
410
|
+
// utilities area at all — the sign-in button is silently invisible.
|
|
411
|
+
// version="2" is required. AppHeader (the shared pattern component)
|
|
412
|
+
// owns both the version attribute and the native slot="utilities" div;
|
|
413
|
+
// App.vue just feeds its named Vue slot.
|
|
416
414
|
await generator(host, options);
|
|
417
415
|
const appHeader = host
|
|
418
416
|
.read('libs/vue-components/src/lib/patterns/AppHeader.vue')
|
|
419
417
|
.toString();
|
|
418
|
+
expect(appHeader).toContain('version="2"');
|
|
420
419
|
expect(appHeader).toMatch(/<div[^>]*slot="utilities"[^>]*>[\s\S]*<slot name="utilities"/);
|
|
421
420
|
|
|
422
421
|
const app = host.read('apps/test/src/App.vue').toString();
|
|
423
422
|
expect(app).toMatch(/<template #utilities>[\s\S]*<goa-button-group/);
|
|
424
423
|
}, 30000);
|
|
425
424
|
|
|
425
|
+
it('WorkspaceTable uses goa-pagination version="2" (compact size; v1 default renders oversized buttons)', async () => {
|
|
426
|
+
// goa-pagination defaults to version="1" (normal/default size). version="2"
|
|
427
|
+
// uses compact size, matching the React wrapper which always passes version="2".
|
|
428
|
+
await generator(host, options);
|
|
429
|
+
const table = host
|
|
430
|
+
.read('libs/vue-components/src/lib/patterns/WorkspaceTable.vue')
|
|
431
|
+
.toString();
|
|
432
|
+
expect(table).toContain('version="2"');
|
|
433
|
+
}, 30000);
|
|
434
|
+
|
|
426
435
|
it('removes the @nx/vue demo scaffold and ships a passing App test', async () => {
|
|
427
436
|
await generator(host, options);
|
|
428
437
|
// The stale nx demo + its failing test must be gone (they fail against our shell).
|
|
@@ -7,11 +7,12 @@ const slots = useSlots();
|
|
|
7
7
|
|
|
8
8
|
<template>
|
|
9
9
|
<goa-microsite-header type="alpha" />
|
|
10
|
-
<goa-app-header url="/" :heading="heading">
|
|
10
|
+
<goa-app-header url="/" :heading="heading" version="2">
|
|
11
11
|
<!-- goa-app-header only renders content placed in a named slot — the
|
|
12
12
|
"utilities" slot is where GoA's own design system docs put
|
|
13
13
|
account/sign-in actions (as opposed to "navigation" for nav links).
|
|
14
|
-
A bare child with no slot attribute renders nothing.
|
|
14
|
+
A bare child with no slot attribute renders nothing. version="2"
|
|
15
|
+
is required: v1 (the default) does not render the utilities area. -->
|
|
15
16
|
<div v-if="slots.utilities" slot="utilities">
|
|
16
17
|
<slot name="utilities" />
|
|
17
18
|
</div>
|
|
@@ -18,6 +18,9 @@ describe('Vue Components Generator', () => {
|
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it('creates the shared wrapper library with all wrappers and a barrel', async () => {
|
|
21
|
+
// Simulate a legacy-ESLint workspace so useFlatConfig() returns false and
|
|
22
|
+
// the generator creates .eslintrc.json rather than eslint.config.mjs.
|
|
23
|
+
host.write('.eslintrc.json', '{}');
|
|
21
24
|
await generator(host);
|
|
22
25
|
|
|
23
26
|
const config = readProjectConfiguration(host, 'vue-components');
|
|
@@ -7,6 +7,11 @@ import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
|
7
7
|
import generator from './vue-detail-view';
|
|
8
8
|
import { Schema } from './schema';
|
|
9
9
|
|
|
10
|
+
jest.mock('@nx/devkit', () => ({
|
|
11
|
+
...jest.requireActual('@nx/devkit'),
|
|
12
|
+
formatFiles: jest.fn().mockResolvedValue(undefined),
|
|
13
|
+
}));
|
|
14
|
+
|
|
10
15
|
// Mirrors the shape vue-app's own template generates -- vue-detail-view retrofits
|
|
11
16
|
// into this file, so the fixture must match what it actually looks for.
|
|
12
17
|
const ROUTER_FIXTURE = `import { createRouter, createWebHistory } from 'vue-router';
|
package/src/index.js
CHANGED