Skip to content

Commit 8c2188d

Browse files
committed
fix(core): import-projects generator shouldn't fail
1 parent b5e5ef1 commit 8c2188d

File tree

19 files changed

+58
-82
lines changed

19 files changed

+58
-82
lines changed

e2e/core-e2e/tests/nx-dotnet.spec.ts

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,19 @@ describe('nx-dotnet e2e', () => {
253253
});
254254
});
255255

256-
describe('nx g import-projects', () => {
256+
fdescribe('nx g import-projects', () => {
257257
it('should import apps, libs, and test', async () => {
258+
updateFile(
259+
'.nx-dotnet.rc.json',
260+
JSON.stringify(
261+
{
262+
nugetPackages: {},
263+
inferProjects: false,
264+
},
265+
null,
266+
2,
267+
),
268+
);
258269
const testApp = uniq('app');
259270
const testLib = uniq('lib');
260271
const testAppTest = `${testApp}-test`;
@@ -272,9 +283,6 @@ describe('nx-dotnet e2e', () => {
272283

273284
const workspace = new Workspaces(e2eDir).readWorkspaceConfiguration();
274285

275-
console.log({ testApp, testLib, testAppTest });
276-
console.log(workspace.projects);
277-
278286
expect(workspace.projects[testApp].targets?.serve).toBeDefined();
279287
expect(workspace.projects[testApp].targets?.build).toBeDefined();
280288
expect(workspace.projects[testApp].targets?.lint).toBeDefined();
@@ -287,6 +295,17 @@ describe('nx-dotnet e2e', () => {
287295

288296
await runNxCommandAsync(`build ${testApp}`);
289297
checkFilesExist(`dist/apps/${testApp}`);
298+
299+
updateFile(
300+
'.nx-dotnet.rc.json',
301+
JSON.stringify(
302+
{
303+
nugetPackages: {},
304+
},
305+
null,
306+
2,
307+
),
308+
);
290309
});
291310
});
292311

nx.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
"namedInputs": {
6060
"default": ["{projectRoot}/**/*", "sharedGlobals", "projectSpecificFiles"],
6161
"sharedGlobals": [
62-
"{workspaceRoot}/workspace.json",
6362
"{workspaceRoot}/tsconfig.base.json",
6463
"{workspaceRoot}/tslint.json",
6564
"{workspaceRoot}/nx.json",

packages/core/src/generators/app/schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@
5757
},
5858
"standalone": {
5959
"type": "boolean",
60-
"description": "Should the project use project.json? If false, the project config is inside workspace.json"
60+
"description": "Should the project use project.json? If false, the project config is inside workspace.json",
61+
"x-deprecated": "New Nx workspaces are created without workspace.json, thus inferring this option as true."
6162
},
6263
"solutionFile": {
6364
"description": "Determines if the project should be added to a solution file.",

packages/core/src/generators/import-projects/generator.spec.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ jest.mock('../init/generator', () => ({
4343
}));
4444

4545
describe('import-projects generator', () => {
46-
let appTree: Tree;
46+
let tree: Tree;
4747
let dotnetClient: DotNetClient;
4848

4949
beforeEach(() => {
50-
appTree = createTreeWithEmptyWorkspace();
50+
tree = createTreeWithEmptyWorkspace();
5151
dotnetClient = new DotNetClient(mockDotnetFactory());
5252
});
5353

@@ -57,10 +57,10 @@ describe('import-projects generator', () => {
5757

5858
it('should run successfully if no new projects are found', async () => {
5959
jest.spyOn(utils, 'glob').mockResolvedValue([]);
60-
const promise = generator(appTree, dotnetClient);
61-
const oldProjects = getProjects(appTree);
60+
const promise = generator(tree, null, dotnetClient);
61+
const oldProjects = getProjects(tree);
6262
await expect(promise).resolves.not.toThrow();
63-
const newProjects = getProjects(appTree);
63+
const newProjects = getProjects(tree);
6464
expect(oldProjects).toEqual(newProjects);
6565
});
6666

@@ -81,10 +81,10 @@ describe('import-projects generator', () => {
8181
);
8282
jest.spyOn(fs, 'readFileSync').mockReturnValue(MOCK_TEST_PROJECT);
8383
jest.spyOn(fs, 'writeFileSync').mockImplementation(() => null);
84-
appTree.write('apps/my-api/my-api.csproj', MOCK_API_PROJECT);
85-
const promise = generator(appTree, dotnetClient);
84+
tree.write('apps/my-api/my-api.csproj', MOCK_API_PROJECT);
85+
const promise = generator(tree, null, dotnetClient);
8686
await expect(promise).resolves.not.toThrow();
87-
expect(readProjectConfiguration(appTree, 'my-test-api')).toBeDefined();
87+
expect(readProjectConfiguration(tree, 'my-test-api')).toBeDefined();
8888
});
8989

9090
it('should run add test target if test projects are found', async () => {
@@ -104,15 +104,15 @@ describe('import-projects generator', () => {
104104
);
105105
jest.spyOn(fs, 'readFileSync').mockReturnValue(MOCK_TEST_PROJECT);
106106
jest.spyOn(fs, 'writeFileSync').mockImplementation(() => null);
107-
appTree.write('apps/my-api-test/my-api-test.csproj', MOCK_TEST_PROJECT);
108-
const promise = generator(appTree, dotnetClient);
107+
tree.write('apps/my-api-test/my-api-test.csproj', MOCK_TEST_PROJECT);
108+
const promise = generator(tree, null, dotnetClient);
109109
await expect(promise).resolves.not.toThrow();
110-
expect(readProjectConfiguration(appTree, 'my-test-api-test')).toBeDefined();
110+
expect(readProjectConfiguration(tree, 'my-test-api-test')).toBeDefined();
111111
expect(
112-
readProjectConfiguration(appTree, 'my-test-api-test').targets?.test,
112+
readProjectConfiguration(tree, 'my-test-api-test').targets?.test,
113113
).toBeDefined();
114114
expect(
115-
readProjectConfiguration(appTree, 'my-test-api-test').targets?.serve,
115+
readProjectConfiguration(tree, 'my-test-api-test').targets?.serve,
116116
).not.toBeDefined();
117117
});
118118

@@ -122,7 +122,7 @@ describe('import-projects generator', () => {
122122
).initGenerator;
123123

124124
jest.spyOn(utils, 'glob').mockResolvedValue([]);
125-
await generator(appTree, dotnetClient);
126-
expect(initGenerator).toHaveBeenCalledWith(appTree, null, dotnetClient);
125+
await generator(tree, null, dotnetClient);
126+
expect(initGenerator).toHaveBeenCalledWith(tree, null, dotnetClient);
127127
});
128128
});

packages/core/src/generators/import-projects/generator.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { initGenerator } from '../init/generator';
2626

2727
export default async function (
2828
host: Tree,
29+
options: null, // The second option is provided at runtime by Nx for options passed in to the generator.
2930
dotnetClient = new DotNetClient(dotnetFactory()),
3031
) {
3132
const installTask = await initGenerator(host, null, dotnetClient);

packages/core/src/generators/lib/schema.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
},
5757
"standalone": {
5858
"type": "boolean",
59-
"description": "Should the project use project.json? If false, the project config is inside workspace.json"
59+
"description": "Should the project use project.json? If false, the project config is inside workspace.json",
60+
"x-deprecated": "New Nx workspaces are created without workspace.json, thus inferring this option as true."
6061
},
6162
"solutionFile": {
6263
"description": "Determines if the project should be added to a solution file.",

packages/core/src/generators/nuget-reference/generator.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jest.mock('../../../../utils/src/lib/utility-functions/workspace');
1616
jest.mock('inquirer');
1717

1818
describe('nuget-reference generator', () => {
19-
let appTree: Tree;
19+
let tree: Tree;
2020

2121
const options: NugetReferenceGeneratorSchema = {
2222
packageName: 'test',
@@ -27,16 +27,16 @@ describe('nuget-reference generator', () => {
2727
let dotnetClient: DotNetClient;
2828

2929
beforeEach(() => {
30-
appTree = createTreeWithEmptyWorkspace();
31-
appTree.write(
30+
tree = createTreeWithEmptyWorkspace();
31+
tree.write(
3232
'workspace.json',
3333
JSON.stringify({
3434
projects: {
3535
test: {},
3636
},
3737
}),
3838
);
39-
appTree.write(
39+
tree.write(
4040
'nx.json',
4141
JSON.stringify({
4242
projects: {
@@ -47,7 +47,7 @@ describe('nuget-reference generator', () => {
4747
}),
4848
);
4949

50-
updateConfig(appTree, { nugetPackages: {} });
50+
updateConfig(tree, { nugetPackages: {} });
5151
(prompt as jest.MockedFunction<typeof prompt>)
5252
.mockReset()
5353
.mockImplementation((async () => {
@@ -58,13 +58,13 @@ describe('nuget-reference generator', () => {
5858
});
5959

6060
it('runs calls dotnet add package reference', async () => {
61-
await generator(appTree, options, dotnetClient);
61+
await generator(tree, options, dotnetClient);
6262
const mock = dotnetClient as jest.Mocked<DotNetClient>;
6363
expect(mock.addPackageReference).toHaveBeenCalledTimes(1);
6464
});
6565

6666
it('only prompts user once on version mismatch / miss', async () => {
67-
await generator(appTree, options, dotnetClient);
67+
await generator(tree, options, dotnetClient);
6868
expect(prompt).toHaveBeenCalledTimes(1);
6969
});
7070

@@ -77,10 +77,10 @@ describe('nuget-reference generator', () => {
7777
.mockReset()
7878
.mockResolvedValue(projectFilePath);
7979

80-
updateConfig(appTree, {
80+
updateConfig(tree, {
8181
nugetPackages: { [options.packageName]: '1.2.3' },
8282
});
83-
await generator(appTree, options, dotnetClient);
83+
await generator(tree, options, dotnetClient);
8484
const mock = dotnetClient as jest.Mocked<DotNetClient>;
8585
expect(mock.addPackageReference).toHaveBeenCalledWith(
8686
projectFilePath,

packages/core/src/generators/sync/generator.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ export default async function (host: Tree) {
4545
false,
4646
pkg,
4747
);
48-
// console.log('Resolved:', resolved)
4948
config.nugetPackages[pkg] = resolved;
5049
if (resolved !== ALLOW_MISMATCH) {
5150
updateDependencyVersions(host, pkg, resolved);

packages/core/src/generators/test/generator.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ describe('nx-dotnet test generator', () => {
4242

4343
await generator(appTree, options, dotnetClient);
4444
expect(projectGenerator).toHaveBeenCalled();
45-
console.log(projectGenerator.mock.calls[0][1]);
4645
expect(projectGenerator.mock.calls[0][1].projectType).toEqual(
4746
'application',
4847
);

packages/core/src/generators/test/generator.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ export default async function (
1818
const directory = projectPaths.slice(1, -1).join('/'); // The middle portions contain the original path.
1919
const [name] = projectPaths.slice(-1); // The final folder contains the original name.
2020

21-
console.log(project);
22-
2321
const projectGeneratorOptions: NxDotnetProjectGeneratorSchema = {
2422
...options,
2523
testProjectNameSuffix: options.suffix,

0 commit comments

Comments
 (0)