@monorepolint/rules 0.5.0-alpha.82 → 0.5.0-alpha.85
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/lib/__tests__/alphabeticalScripts.spec.js +22 -24
- package/lib/__tests__/alphabeticalScripts.spec.js.map +1 -1
- package/lib/__tests__/bannedDependencies.spec.js +67 -9
- package/lib/__tests__/bannedDependencies.spec.js.map +1 -1
- package/lib/__tests__/consistentDependencies.spec.js +11 -10
- package/lib/__tests__/consistentDependencies.spec.js.map +1 -1
- package/lib/__tests__/consistentVersions.spec.js +23 -22
- package/lib/__tests__/consistentVersions.spec.js.map +1 -1
- package/lib/__tests__/fileContents.spec.js +25 -32
- package/lib/__tests__/fileContents.spec.js.map +1 -1
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +49 -48
- package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +1 -1
- package/lib/__tests__/nestedWorkspaces.spec.js +10 -8
- package/lib/__tests__/nestedWorkspaces.spec.js.map +1 -1
- package/lib/__tests__/packageEntry.spec.js +47 -40
- package/lib/__tests__/packageEntry.spec.js.map +1 -1
- package/lib/__tests__/packageOrder.spec.js +34 -33
- package/lib/__tests__/packageOrder.spec.js.map +1 -1
- package/lib/__tests__/packageScript.spec.js +50 -51
- package/lib/__tests__/packageScript.spec.js.map +1 -1
- package/lib/__tests__/requireDependency.spec.js +12 -11
- package/lib/__tests__/requireDependency.spec.js.map +1 -1
- package/lib/__tests__/utils.d.ts +68 -1
- package/lib/__tests__/utils.d.ts.map +1 -1
- package/lib/__tests__/utils.js +70 -21
- package/lib/__tests__/utils.js.map +1 -1
- package/lib/alphabeticalDependencies.js +3 -3
- package/lib/alphabeticalDependencies.js.map +1 -1
- package/lib/alphabeticalScripts.js +1 -1
- package/lib/alphabeticalScripts.js.map +1 -1
- package/lib/bannedDependencies.d.ts +21 -12
- package/lib/bannedDependencies.d.ts.map +1 -1
- package/lib/bannedDependencies.js +86 -57
- package/lib/bannedDependencies.js.map +1 -1
- package/lib/consistentDependencies.d.ts +6 -6
- package/lib/consistentDependencies.d.ts.map +1 -1
- package/lib/consistentDependencies.js +2 -3
- package/lib/consistentDependencies.js.map +1 -1
- package/lib/consistentVersions.d.ts +1 -1
- package/lib/consistentVersions.js +8 -8
- package/lib/consistentVersions.js.map +1 -1
- package/lib/fileContents.d.ts +8 -8
- package/lib/fileContents.d.ts.map +1 -1
- package/lib/fileContents.js +32 -31
- package/lib/fileContents.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/mustSatisfyPeerDependencies.d.ts +31 -31
- package/lib/mustSatisfyPeerDependencies.d.ts.map +1 -1
- package/lib/mustSatisfyPeerDependencies.js +18 -16
- package/lib/mustSatisfyPeerDependencies.js.map +1 -1
- package/lib/packageEntry.d.ts +11 -20
- package/lib/packageEntry.d.ts.map +1 -1
- package/lib/packageEntry.js +15 -7
- package/lib/packageEntry.js.map +1 -1
- package/lib/packageOrder.d.ts +3 -3
- package/lib/packageOrder.d.ts.map +1 -1
- package/lib/packageOrder.js +2 -3
- package/lib/packageOrder.js.map +1 -1
- package/lib/packageScript.d.ts +10 -10
- package/lib/packageScript.js +4 -4
- package/lib/packageScript.js.map +1 -1
- package/lib/requireDependency.d.ts +6 -6
- package/lib/requireDependency.d.ts.map +1 -1
- package/lib/requireDependency.js +3 -3
- package/lib/requireDependency.js.map +1 -1
- package/lib/standardTsconfig.d.ts +10 -10
- package/lib/standardTsconfig.d.ts.map +1 -1
- package/lib/standardTsconfig.js +26 -21
- package/lib/standardTsconfig.js.map +1 -1
- package/lib/util/checkAlpha.d.ts +1 -0
- package/lib/util/checkAlpha.d.ts.map +1 -1
- package/lib/util/checkAlpha.js +8 -5
- package/lib/util/checkAlpha.js.map +1 -1
- package/lib/util/makeDirectory.js +2 -2
- package/lib/util/makeDirectory.js.map +1 -1
- package/lib/util/packageDependencyGraphService.d.ts +3 -3
- package/lib/util/packageDependencyGraphService.d.ts.map +1 -1
- package/lib/util/packageDependencyGraphService.js +3 -3
- package/lib/util/packageDependencyGraphService.js.map +1 -1
- package/package.json +8 -9
- package/src/__tests__/alphabeticalScripts.spec.ts +27 -28
- package/src/__tests__/bannedDependencies.spec.ts +80 -6
- package/src/__tests__/consistentDependencies.spec.ts +11 -6
- package/src/__tests__/consistentVersions.spec.ts +32 -27
- package/src/__tests__/fileContents.spec.ts +32 -40
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +52 -47
- package/src/__tests__/nestedWorkspaces.spec.ts +12 -6
- package/src/__tests__/packageEntry.spec.ts +64 -45
- package/src/__tests__/packageOrder.spec.ts +46 -40
- package/src/__tests__/packageScript.spec.ts +62 -54
- package/src/__tests__/requireDependency.spec.ts +11 -6
- package/src/__tests__/utils.ts +109 -19
- package/src/bannedDependencies.ts +106 -74
- package/src/consistentDependencies.ts +1 -2
- package/src/consistentVersions.ts +2 -2
- package/src/fileContents.ts +32 -30
- package/src/mustSatisfyPeerDependencies.ts +6 -2
- package/src/packageEntry.ts +13 -5
- package/src/packageOrder.ts +1 -2
- package/src/packageScript.ts +2 -2
- package/src/requireDependency.ts +2 -2
- package/src/standardTsconfig.ts +22 -19
- package/src/util/checkAlpha.ts +6 -3
- package/src/util/packageDependencyGraphService.ts +8 -5
- package/tsconfig.tsbuildinfo +1 -6233
|
@@ -6,12 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
// tslint:disable:no-console
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
// done first since this also mocks 'fs'
|
|
12
|
-
const mockFiles = utils_1.createMockFiles();
|
|
13
|
-
const core_1 = require("@monorepolint/core");
|
|
14
9
|
const packageEntry_1 = require("../packageEntry");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
15
11
|
const PACKAGE_MISSING_ENTRY = JSON.stringify({
|
|
16
12
|
name: "package",
|
|
17
13
|
version: {},
|
|
@@ -35,23 +31,24 @@ const PACKAGE_REPOSITORY = JSON.stringify({
|
|
|
35
31
|
url: "https://github.com:foo/foo",
|
|
36
32
|
},
|
|
37
33
|
}, undefined, 2) + "\n";
|
|
38
|
-
describe("expectPackageEntries", () => {
|
|
39
|
-
afterEach(() => {
|
|
40
|
-
mockFiles.clear();
|
|
41
|
-
});
|
|
34
|
+
describe.each(utils_1.HOST_FACTORIES)("expectPackageEntries ($name)", (hostFactory) => {
|
|
42
35
|
describe("fix: true", () => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
let workspace;
|
|
37
|
+
let spy;
|
|
38
|
+
let context;
|
|
39
|
+
beforeEach(async () => {
|
|
40
|
+
workspace = await (0, utils_1.createTestingWorkspace)({
|
|
41
|
+
fixFlag: true,
|
|
42
|
+
host: hostFactory.make(),
|
|
43
|
+
});
|
|
44
|
+
context = workspace.context; // minimizing delta
|
|
45
|
+
spy = jest.spyOn(workspace.context, "addError");
|
|
48
46
|
});
|
|
49
|
-
const spy = jest.spyOn(context, "addError");
|
|
50
47
|
afterEach(() => {
|
|
51
48
|
spy.mockClear();
|
|
52
49
|
});
|
|
53
50
|
it("fixes missing entries", () => {
|
|
54
|
-
|
|
51
|
+
workspace.writeFile("package.json", PACKAGE_MISSING_ENTRY);
|
|
55
52
|
packageEntry_1.packageEntry.check(context, {
|
|
56
53
|
entries: {
|
|
57
54
|
license: "UNLICENSED",
|
|
@@ -60,13 +57,15 @@ describe("expectPackageEntries", () => {
|
|
|
60
57
|
});
|
|
61
58
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
62
59
|
const failure = spy.mock.calls[0][0];
|
|
63
|
-
expect(failure
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
61
|
+
file: "package.json",
|
|
62
|
+
hasFixer: true,
|
|
63
|
+
message: (0, packageEntry_1.createStandardizedEntryErrorMessage)("license"),
|
|
64
|
+
}));
|
|
65
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_LICENSE);
|
|
67
66
|
});
|
|
68
67
|
it("fixes missing nested entries", () => {
|
|
69
|
-
|
|
68
|
+
workspace.writeFile("package.json", PACKAGE_MISSING_ENTRY);
|
|
70
69
|
packageEntry_1.packageEntry.check(context, {
|
|
71
70
|
entries: {
|
|
72
71
|
repository: {
|
|
@@ -78,13 +77,15 @@ describe("expectPackageEntries", () => {
|
|
|
78
77
|
});
|
|
79
78
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
80
79
|
const failure = spy.mock.calls[0][0];
|
|
81
|
-
expect(failure
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
81
|
+
file: "package.json",
|
|
82
|
+
hasFixer: true,
|
|
83
|
+
message: (0, packageEntry_1.createStandardizedEntryErrorMessage)("repository"),
|
|
84
|
+
}));
|
|
85
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_REPOSITORY);
|
|
85
86
|
});
|
|
86
87
|
it("doesn't error for nested entries that are defined", () => {
|
|
87
|
-
|
|
88
|
+
workspace.writeFile("package.json", PACKAGE_REPOSITORY);
|
|
88
89
|
packageEntry_1.packageEntry.check(context, {
|
|
89
90
|
entries: {
|
|
90
91
|
repository: {
|
|
@@ -95,23 +96,25 @@ describe("expectPackageEntries", () => {
|
|
|
95
96
|
entriesExist: undefined,
|
|
96
97
|
});
|
|
97
98
|
expect(spy).toHaveBeenCalledTimes(0);
|
|
98
|
-
expect(
|
|
99
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_REPOSITORY);
|
|
99
100
|
});
|
|
100
101
|
it("errors for keys that are missing", () => {
|
|
101
|
-
|
|
102
|
+
workspace.writeFile("package.json", PACKAGE_REPOSITORY);
|
|
102
103
|
packageEntry_1.packageEntry.check(context, {
|
|
103
104
|
entries: undefined,
|
|
104
105
|
entriesExist: ["bugs"],
|
|
105
106
|
});
|
|
106
107
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
107
108
|
const failure = spy.mock.calls[0][0];
|
|
108
|
-
expect(failure
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
110
|
+
file: "package.json",
|
|
111
|
+
hasFixer: false,
|
|
112
|
+
message: (0, packageEntry_1.createExpectedEntryErrorMessage)("bugs"),
|
|
113
|
+
}));
|
|
114
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_REPOSITORY);
|
|
112
115
|
});
|
|
113
116
|
it("handles both entries and entriesExist", () => {
|
|
114
|
-
|
|
117
|
+
workspace.writeFile("package.json", PACKAGE_MISSING_ENTRY);
|
|
115
118
|
packageEntry_1.packageEntry.check(context, {
|
|
116
119
|
entries: {
|
|
117
120
|
repository: {
|
|
@@ -123,14 +126,18 @@ describe("expectPackageEntries", () => {
|
|
|
123
126
|
});
|
|
124
127
|
expect(spy).toHaveBeenCalledTimes(2);
|
|
125
128
|
const failure = spy.mock.calls[0][0];
|
|
126
|
-
expect(failure
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
130
|
+
file: "package.json",
|
|
131
|
+
hasFixer: true,
|
|
132
|
+
message: (0, packageEntry_1.createStandardizedEntryErrorMessage)("repository"),
|
|
133
|
+
}));
|
|
129
134
|
const failure2 = spy.mock.calls[1][0];
|
|
130
|
-
expect(failure2
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
135
|
+
expect(failure2).toMatchObject(workspace.failureMatcher({
|
|
136
|
+
file: "package.json",
|
|
137
|
+
hasFixer: false,
|
|
138
|
+
message: (0, packageEntry_1.createExpectedEntryErrorMessage)("bugs"),
|
|
139
|
+
}));
|
|
140
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_REPOSITORY);
|
|
134
141
|
});
|
|
135
142
|
});
|
|
136
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageEntry.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageEntry.spec.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"packageEntry.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageEntry.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,6 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
// tslint:disable:no-console
|
|
10
10
|
const utils_1 = require("./utils");
|
|
11
|
-
// done first since this also mocks 'fs'
|
|
12
|
-
const mockFiles = utils_1.createMockFiles();
|
|
13
|
-
const core_1 = require("@monorepolint/core");
|
|
14
11
|
const packageOrder_1 = require("../packageOrder");
|
|
15
12
|
const PACKAGE_UNORDERED = JSON.stringify({
|
|
16
13
|
scripts: {},
|
|
@@ -51,64 +48,68 @@ const PACKAGE_ORDERED_UNKOWN_KEYS = JSON.stringify({
|
|
|
51
48
|
apple: false,
|
|
52
49
|
butter: false,
|
|
53
50
|
}, undefined, 2) + "\n";
|
|
54
|
-
describe("expectPackageOrder", () => {
|
|
55
|
-
afterEach(() => {
|
|
56
|
-
mockFiles.clear();
|
|
57
|
-
});
|
|
51
|
+
describe.each(utils_1.HOST_FACTORIES)("expectPackageOrder ($name)", (hostFactory) => {
|
|
58
52
|
describe("fix: true", () => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
let workspace;
|
|
54
|
+
let spy;
|
|
55
|
+
let context;
|
|
56
|
+
beforeEach(async () => {
|
|
57
|
+
workspace = await (0, utils_1.createTestingWorkspace)({
|
|
58
|
+
fixFlag: true,
|
|
59
|
+
host: hostFactory.make(),
|
|
60
|
+
});
|
|
61
|
+
context = workspace.context; // minimizing delta
|
|
62
|
+
spy = jest.spyOn(workspace.context, "addError");
|
|
68
63
|
});
|
|
69
64
|
it("fixes order for expected keys", () => {
|
|
70
|
-
|
|
65
|
+
workspace.writeFile("package.json", PACKAGE_UNORDERED);
|
|
71
66
|
packageOrder_1.packageOrder.check(context, {
|
|
72
67
|
order: orderArray,
|
|
73
68
|
});
|
|
74
69
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
75
70
|
const failure = spy.mock.calls[0][0];
|
|
76
|
-
expect(failure
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
71
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
72
|
+
file: "package.json",
|
|
73
|
+
hasFixer: true,
|
|
74
|
+
message: "Incorrect order of fields in package.json",
|
|
75
|
+
}));
|
|
76
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_ORDERED);
|
|
80
77
|
});
|
|
81
78
|
it("fixes order for unexpected keys", () => {
|
|
82
|
-
|
|
79
|
+
workspace.writeFile("package.json", PACKAGE_UNORDERED_UNKOWN_KEYS);
|
|
83
80
|
packageOrder_1.packageOrder.check(context, {
|
|
84
81
|
order: orderArray,
|
|
85
82
|
});
|
|
86
83
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
87
84
|
const failure = spy.mock.calls[0][0];
|
|
88
|
-
expect(failure
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
85
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
86
|
+
file: "package.json",
|
|
87
|
+
hasFixer: true,
|
|
88
|
+
message: "Incorrect order of fields in package.json",
|
|
89
|
+
}));
|
|
90
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_ORDERED_UNKOWN_KEYS);
|
|
92
91
|
});
|
|
93
92
|
it("fixes order using function", () => {
|
|
94
|
-
|
|
93
|
+
workspace.writeFile("package.json", PACKAGE_UNORDERED);
|
|
95
94
|
packageOrder_1.packageOrder.check(context, {
|
|
96
95
|
order: orderFunction,
|
|
97
96
|
});
|
|
98
97
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
99
98
|
const failure = spy.mock.calls[0][0];
|
|
100
|
-
expect(failure
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
100
|
+
file: "package.json",
|
|
101
|
+
hasFixer: true,
|
|
102
|
+
message: "Incorrect order of fields in package.json",
|
|
103
|
+
}));
|
|
104
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_ORDERED_BY_LENGTH);
|
|
104
105
|
});
|
|
105
106
|
it("does nothing if already order", () => {
|
|
106
|
-
|
|
107
|
+
workspace.writeFile("package.json", PACKAGE_ORDERED_UNKOWN_KEYS);
|
|
107
108
|
packageOrder_1.packageOrder.check(context, {
|
|
108
109
|
order: orderArray,
|
|
109
110
|
});
|
|
110
111
|
expect(spy).not.toHaveBeenCalled();
|
|
111
|
-
expect(
|
|
112
|
+
expect(workspace.readFile("package.json")).toEqual(PACKAGE_ORDERED_UNKOWN_KEYS);
|
|
112
113
|
});
|
|
113
114
|
});
|
|
114
115
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageOrder.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageOrder.spec.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,4BAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"packageOrder.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageOrder.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
// tslint:disable:no-console
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
// done first since this also mocks 'fs'
|
|
12
|
-
const mockFiles = utils_1.createMockFiles();
|
|
13
|
-
const core_1 = require("@monorepolint/core");
|
|
14
9
|
const packageScript_1 = require("../packageScript");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
15
11
|
const json = (a) => JSON.stringify(a, undefined, 2) + "\n";
|
|
16
12
|
const PACKAGE_WITHOUT_SCRIPTS = json({
|
|
17
13
|
name: "package-without-scripts",
|
|
@@ -26,48 +22,47 @@ const PACKAGE_WITH_SCRIPTS = json({
|
|
|
26
22
|
[SCRIPT_NAME]: SCRIPT_VALUE,
|
|
27
23
|
},
|
|
28
24
|
});
|
|
29
|
-
describe("expectPackageScript", () => {
|
|
30
|
-
afterEach(() => {
|
|
31
|
-
mockFiles.clear();
|
|
32
|
-
});
|
|
25
|
+
describe.each(utils_1.HOST_FACTORIES)("expectPackageScript ($name)", (hostFactory) => {
|
|
33
26
|
describe("fix: false", () => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
spy.mockClear();
|
|
27
|
+
let workspace;
|
|
28
|
+
let spy;
|
|
29
|
+
beforeEach(async () => {
|
|
30
|
+
workspace = await (0, utils_1.createTestingWorkspace)({
|
|
31
|
+
fixFlag: false,
|
|
32
|
+
host: hostFactory.make(),
|
|
33
|
+
});
|
|
34
|
+
spy = jest.spyOn(workspace.context, "addError");
|
|
43
35
|
});
|
|
44
36
|
it("handles an empty script section", () => {
|
|
45
|
-
|
|
46
|
-
packageScript_1.packageScript.check(context, {
|
|
37
|
+
workspace.writeFile("package.json", PACKAGE_WITHOUT_SCRIPTS);
|
|
38
|
+
packageScript_1.packageScript.check(workspace.context, {
|
|
47
39
|
scripts: {
|
|
48
40
|
foo: "bar",
|
|
49
41
|
},
|
|
50
42
|
});
|
|
51
43
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
52
44
|
const failure = spy.mock.calls[0][0];
|
|
53
|
-
expect(failure
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
46
|
+
file: "package.json",
|
|
47
|
+
hasFixer: true,
|
|
48
|
+
message: "No scripts block in package.json",
|
|
49
|
+
}));
|
|
56
50
|
});
|
|
57
51
|
});
|
|
58
52
|
describe("fix: true", () => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
spy.
|
|
53
|
+
let workspace;
|
|
54
|
+
let spy;
|
|
55
|
+
let context;
|
|
56
|
+
beforeEach(async () => {
|
|
57
|
+
workspace = await (0, utils_1.createTestingWorkspace)({
|
|
58
|
+
fixFlag: true,
|
|
59
|
+
host: hostFactory.make(),
|
|
60
|
+
});
|
|
61
|
+
spy = jest.spyOn(workspace.context, "addError");
|
|
62
|
+
context = workspace.context; // minimizing delta
|
|
68
63
|
});
|
|
69
64
|
it("fixes an empty script section", () => {
|
|
70
|
-
|
|
65
|
+
workspace.writeFile("package.json", PACKAGE_WITHOUT_SCRIPTS);
|
|
71
66
|
packageScript_1.packageScript.check(context, {
|
|
72
67
|
scripts: {
|
|
73
68
|
foo: "bar",
|
|
@@ -75,13 +70,15 @@ describe("expectPackageScript", () => {
|
|
|
75
70
|
});
|
|
76
71
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
77
72
|
const failure = spy.mock.calls[0][0];
|
|
78
|
-
expect(failure
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
74
|
+
file: "package.json",
|
|
75
|
+
hasFixer: true,
|
|
76
|
+
message: "No scripts block in package.json",
|
|
77
|
+
}));
|
|
78
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
|
|
82
79
|
});
|
|
83
80
|
it("adds a script", () => {
|
|
84
|
-
|
|
81
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
85
82
|
packageScript_1.packageScript.check(context, {
|
|
86
83
|
scripts: {
|
|
87
84
|
[MISSING_SCRIPT_NAME]: MISSING_SCRIPT_VALUE,
|
|
@@ -89,25 +86,27 @@ describe("expectPackageScript", () => {
|
|
|
89
86
|
});
|
|
90
87
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
91
88
|
const failure = spy.mock.calls[0][0];
|
|
92
|
-
expect(failure
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
expect(failure).toMatchObject(workspace.failureMatcher({
|
|
90
|
+
file: "package.json",
|
|
91
|
+
hasFixer: true,
|
|
92
|
+
message: expect.stringContaining(`Expected standardized script entry for '${MISSING_SCRIPT_NAME}'`),
|
|
93
|
+
}));
|
|
94
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts[MISSING_SCRIPT_NAME]).toEqual(MISSING_SCRIPT_VALUE);
|
|
96
95
|
});
|
|
97
96
|
it("does nothing if the value exists", () => {
|
|
98
|
-
|
|
97
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
99
98
|
packageScript_1.packageScript.check(context, {
|
|
100
99
|
scripts: {
|
|
101
100
|
[SCRIPT_NAME]: SCRIPT_VALUE,
|
|
102
101
|
},
|
|
103
102
|
});
|
|
104
103
|
expect(spy).not.toHaveBeenCalled();
|
|
105
|
-
expect(JSON.parse(
|
|
104
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({
|
|
106
105
|
[SCRIPT_NAME]: SCRIPT_VALUE,
|
|
107
106
|
});
|
|
108
107
|
});
|
|
109
108
|
it("errors if long form is used and no value matches and there is no fixValue", () => {
|
|
110
|
-
|
|
109
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
111
110
|
packageScript_1.packageScript.check(context, {
|
|
112
111
|
scripts: {
|
|
113
112
|
foo: {
|
|
@@ -120,7 +119,7 @@ describe("expectPackageScript", () => {
|
|
|
120
119
|
expect(errors[0][0].fixer).toBeUndefined();
|
|
121
120
|
});
|
|
122
121
|
it("uses the fixValue for fixing if provided", () => {
|
|
123
|
-
|
|
122
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
124
123
|
packageScript_1.packageScript.check(context, {
|
|
125
124
|
scripts: {
|
|
126
125
|
foo: {
|
|
@@ -132,13 +131,13 @@ describe("expectPackageScript", () => {
|
|
|
132
131
|
const errors = spy.mock.calls;
|
|
133
132
|
expect(errors.length).toBe(1);
|
|
134
133
|
expect(errors[0][0].fixer).toBeDefined();
|
|
135
|
-
expect(JSON.parse(
|
|
134
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({
|
|
136
135
|
[SCRIPT_NAME]: SCRIPT_VALUE,
|
|
137
136
|
foo: "a",
|
|
138
137
|
});
|
|
139
138
|
});
|
|
140
139
|
it("can fix to empty", () => {
|
|
141
|
-
|
|
140
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
142
141
|
packageScript_1.packageScript.check(context, {
|
|
143
142
|
scripts: {
|
|
144
143
|
[SCRIPT_NAME]: {
|
|
@@ -150,10 +149,10 @@ describe("expectPackageScript", () => {
|
|
|
150
149
|
const errors = spy.mock.calls;
|
|
151
150
|
expect(errors.length).toBe(1);
|
|
152
151
|
expect(errors[0][0].fixer).toBeDefined();
|
|
153
|
-
expect(JSON.parse(
|
|
152
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
|
|
154
153
|
});
|
|
155
154
|
it("can allow only empty", () => {
|
|
156
|
-
|
|
155
|
+
workspace.writeFile("package.json", PACKAGE_WITH_SCRIPTS);
|
|
157
156
|
packageScript_1.packageScript.check(context, {
|
|
158
157
|
scripts: {
|
|
159
158
|
[SCRIPT_NAME]: {
|
|
@@ -165,7 +164,7 @@ describe("expectPackageScript", () => {
|
|
|
165
164
|
const errors = spy.mock.calls;
|
|
166
165
|
expect(errors.length).toBe(1);
|
|
167
166
|
expect(errors[0][0].fixer).toBeDefined();
|
|
168
|
-
expect(JSON.parse(
|
|
167
|
+
expect(JSON.parse(workspace.readFile("package.json")).scripts).toEqual({});
|
|
169
168
|
});
|
|
170
169
|
});
|
|
171
170
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageScript.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageScript.spec.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"packageScript.spec.js","sourceRoot":"","sources":["../../src/__tests__/packageScript.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,14 @@ const tslib_1 = require("tslib");
|
|
|
8
8
|
*
|
|
9
9
|
*/
|
|
10
10
|
const core_1 = require("@monorepolint/core");
|
|
11
|
+
const utils_1 = require("@monorepolint/utils");
|
|
11
12
|
const fs_1 = require("fs");
|
|
12
13
|
const path = tslib_1.__importStar(require("path"));
|
|
13
14
|
const tmp = tslib_1.__importStar(require("tmp"));
|
|
14
15
|
const requireDependency_1 = require("../requireDependency");
|
|
15
16
|
const makeDirectory_1 = require("../util/makeDirectory");
|
|
16
|
-
const
|
|
17
|
-
const PACKAGE_ROOT =
|
|
17
|
+
const utils_2 = require("./utils");
|
|
18
|
+
const PACKAGE_ROOT = (0, utils_2.jsonToString)({
|
|
18
19
|
workspaces: {
|
|
19
20
|
packages: ["packages/*"],
|
|
20
21
|
},
|
|
@@ -22,12 +23,12 @@ const PACKAGE_ROOT = utils_1.jsonToString({
|
|
|
22
23
|
foo: "5",
|
|
23
24
|
},
|
|
24
25
|
});
|
|
25
|
-
const PACKAGE_WITH_NO_ENTRIES =
|
|
26
|
-
const PACKAGE_WITH_ENTRIES_MISSING =
|
|
26
|
+
const PACKAGE_WITH_NO_ENTRIES = (0, utils_2.jsonToString)({});
|
|
27
|
+
const PACKAGE_WITH_ENTRIES_MISSING = (0, utils_2.jsonToString)({
|
|
27
28
|
dependencies: {},
|
|
28
29
|
devDependencies: {},
|
|
29
30
|
});
|
|
30
|
-
const PACKAGE_WITH_WRONG_ENTRIES =
|
|
31
|
+
const PACKAGE_WITH_WRONG_ENTRIES = (0, utils_2.jsonToString)({
|
|
31
32
|
dependencies: {
|
|
32
33
|
foo: "0.1.0",
|
|
33
34
|
},
|
|
@@ -35,7 +36,7 @@ const PACKAGE_WITH_WRONG_ENTRIES = utils_1.jsonToString({
|
|
|
35
36
|
bar: "1.0.0",
|
|
36
37
|
},
|
|
37
38
|
});
|
|
38
|
-
const PACKAGE_WITH_RIGHT_ENTRIES =
|
|
39
|
+
const PACKAGE_WITH_RIGHT_ENTRIES = (0, utils_2.jsonToString)({
|
|
39
40
|
dependencies: {
|
|
40
41
|
foo: "1.0.0",
|
|
41
42
|
},
|
|
@@ -51,7 +52,7 @@ const OPTIONS = {
|
|
|
51
52
|
bar: "^2.0.0",
|
|
52
53
|
},
|
|
53
54
|
};
|
|
54
|
-
const CORRECT_OUTPUT =
|
|
55
|
+
const CORRECT_OUTPUT = (0, utils_2.jsonToString)(OPTIONS);
|
|
55
56
|
describe("requireDependency", () => {
|
|
56
57
|
tmp.setGracefulCleanup();
|
|
57
58
|
let cleanupJobs = [];
|
|
@@ -69,7 +70,7 @@ describe("requireDependency", () => {
|
|
|
69
70
|
fix,
|
|
70
71
|
verbose: false,
|
|
71
72
|
silent: true,
|
|
72
|
-
});
|
|
73
|
+
}, new utils_1.SimpleHost());
|
|
73
74
|
function checkAndSpy(q) {
|
|
74
75
|
const context = workspaceContext.createChildContext(path.resolve(dir.name, q));
|
|
75
76
|
const addErrorSpy = jest.spyOn(context, "addError");
|
|
@@ -79,11 +80,11 @@ describe("requireDependency", () => {
|
|
|
79
80
|
function addFile(filePath, content) {
|
|
80
81
|
const dirPath = path.resolve(dir.name, path.dirname(filePath));
|
|
81
82
|
const resolvedFilePath = path.resolve(dir.name, filePath);
|
|
82
|
-
makeDirectory_1.makeDirectoryRecursively(dirPath);
|
|
83
|
-
fs_1.writeFileSync(resolvedFilePath, content);
|
|
83
|
+
(0, makeDirectory_1.makeDirectoryRecursively)(dirPath);
|
|
84
|
+
(0, fs_1.writeFileSync)(resolvedFilePath, content);
|
|
84
85
|
}
|
|
85
86
|
function readFile(filePath) {
|
|
86
|
-
return fs_1.readFileSync(path.resolve(dir.name, filePath)).toString();
|
|
87
|
+
return (0, fs_1.readFileSync)(path.resolve(dir.name, filePath)).toString();
|
|
87
88
|
}
|
|
88
89
|
return { addFile, readFile, workspaceContext, checkAndSpy };
|
|
89
90
|
}
|