apify-test-tools 0.10.1-beta.3 → 0.10.1-beta.4
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/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +7 -2
- package/CHANGELOG.md +6 -0
- package/CONTRIBUTING.md +9 -0
- package/bin/build-from-local.ts +8 -7
- package/bin/build.ts +22 -21
- package/bin/diff-changes.ts +11 -10
- package/bin/diff-json-schema.ts +14 -12
- package/bin/git.ts +90 -43
- package/bin/logger.ts +23 -0
- package/bin/main.ts +49 -35
- package/bin/output.ts +6 -0
- package/bin/slack.ts +8 -7
- package/bin/test-report.ts +22 -21
- package/bin/utils/config/actor-json.ts +84 -0
- package/bin/utils/config/load-config.ts +46 -46
- package/bin/utils/config/parser.ts +33 -28
- package/bin/utils/config/structures/base.ts +7 -0
- package/bin/utils/json-file.ts +11 -14
- package/bin/utils/path/repo-relative.ts +156 -0
- package/bin/utils/path/schema.ts +18 -0
- package/bin/utils.ts +61 -34
- package/dist/bin/build-from-local.d.ts +1 -1
- package/dist/bin/build-from-local.d.ts.map +1 -1
- package/dist/bin/build-from-local.js +8 -7
- package/dist/bin/build-from-local.js.map +1 -1
- package/dist/bin/build.d.ts.map +1 -1
- package/dist/bin/build.js +22 -21
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/diff-changes.d.ts +1 -1
- package/dist/bin/diff-changes.d.ts.map +1 -1
- package/dist/bin/diff-changes.js +9 -8
- package/dist/bin/diff-changes.js.map +1 -1
- package/dist/bin/diff-json-schema.d.ts +1 -1
- package/dist/bin/diff-json-schema.d.ts.map +1 -1
- package/dist/bin/diff-json-schema.js +13 -12
- package/dist/bin/diff-json-schema.js.map +1 -1
- package/dist/bin/git.d.ts +10 -10
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +78 -37
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/logger.d.ts +11 -0
- package/dist/bin/logger.d.ts.map +1 -0
- package/dist/bin/logger.js +20 -0
- package/dist/bin/logger.js.map +1 -0
- package/dist/bin/main.d.ts +1 -1
- package/dist/bin/main.js +48 -35
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/output.d.ts +3 -0
- package/dist/bin/output.d.ts.map +1 -0
- package/dist/bin/output.js +6 -0
- package/dist/bin/output.js.map +1 -0
- package/dist/bin/slack.d.ts.map +1 -1
- package/dist/bin/slack.js +8 -7
- package/dist/bin/slack.js.map +1 -1
- package/dist/bin/test-report.d.ts.map +1 -1
- package/dist/bin/test-report.js +22 -21
- package/dist/bin/test-report.js.map +1 -1
- package/dist/bin/utils/config/actor-json.d.ts +14 -0
- package/dist/bin/utils/config/actor-json.d.ts.map +1 -0
- package/dist/bin/utils/config/actor-json.js +60 -0
- package/dist/bin/utils/config/actor-json.js.map +1 -0
- package/dist/bin/utils/config/load-config.d.ts +12 -2
- package/dist/bin/utils/config/load-config.d.ts.map +1 -1
- package/dist/bin/utils/config/load-config.js +32 -31
- package/dist/bin/utils/config/load-config.js.map +1 -1
- package/dist/bin/utils/config/parser.d.ts +4 -12
- package/dist/bin/utils/config/parser.d.ts.map +1 -1
- package/dist/bin/utils/config/parser.js +24 -23
- package/dist/bin/utils/config/parser.js.map +1 -1
- package/dist/bin/utils/config/structures/base.d.ts +5 -0
- package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
- package/dist/bin/utils/config/structures/base.js.map +1 -1
- package/dist/bin/utils/json-file.d.ts +3 -2
- package/dist/bin/utils/json-file.d.ts.map +1 -1
- package/dist/bin/utils/json-file.js +8 -13
- package/dist/bin/utils/json-file.js.map +1 -1
- package/dist/bin/utils/path/repo-relative.d.ts +35 -0
- package/dist/bin/utils/path/repo-relative.d.ts.map +1 -0
- package/dist/bin/utils/path/repo-relative.js +137 -0
- package/dist/bin/utils/path/repo-relative.js.map +1 -0
- package/dist/bin/utils/path/schema.d.ts +7 -0
- package/dist/bin/utils/path/schema.d.ts.map +1 -0
- package/dist/bin/utils/path/schema.js +16 -0
- package/dist/bin/utils/path/schema.js.map +1 -0
- package/dist/bin/utils.d.ts +14 -3
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +52 -29
- package/dist/bin/utils.js.map +1 -1
- package/dist/test/unit/bin/build-from-local.test.js +3 -39
- package/dist/test/unit/bin/build-from-local.test.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.js +97 -96
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/test/unit/bin/diff.test.js +52 -48
- package/dist/test/unit/bin/diff.test.js.map +1 -1
- package/dist/test/unit/bin/git-command.test.d.ts +2 -0
- package/dist/test/unit/bin/git-command.test.d.ts.map +1 -0
- package/dist/test/unit/bin/git-command.test.js +54 -0
- package/dist/test/unit/bin/git-command.test.js.map +1 -0
- package/dist/test/unit/bin/git.test.js +211 -92
- package/dist/test/unit/bin/git.test.js.map +1 -1
- package/dist/test/unit/bin/logger.test.d.ts +2 -0
- package/dist/test/unit/bin/logger.test.d.ts.map +1 -0
- package/dist/test/unit/bin/logger.test.js +44 -0
- package/dist/test/unit/bin/logger.test.js.map +1 -0
- package/dist/test/unit/bin/logging.test.d.ts +2 -0
- package/dist/test/unit/bin/logging.test.d.ts.map +1 -0
- package/dist/test/unit/bin/logging.test.js +43 -0
- package/dist/test/unit/bin/logging.test.js.map +1 -0
- package/dist/test/unit/bin/utils/config/load-config.test.js +47 -25
- package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
- package/dist/test/unit/bin/utils/config/parser.test.js +64 -19
- package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
- package/dist/test/unit/bin/utils/files.test.js +16 -27
- package/dist/test/unit/bin/utils/files.test.js.map +1 -1
- package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts +2 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.js +196 -0
- package/dist/test/unit/bin/utils/path/repo-relative.test.js.map +1 -0
- package/dist/test/unit/bin/utils/path/schema.test.d.ts +2 -0
- package/dist/test/unit/bin/utils/path/schema.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils/path/schema.test.js +52 -0
- package/dist/test/unit/bin/utils/path/schema.test.js.map +1 -0
- package/dist/test/unit/should-built-and-test.test.js +40 -38
- package/dist/test/unit/should-built-and-test.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.mjs +9 -1
- package/package.json +4 -4
- package/test/unit/bin/build-from-local.test.ts +3 -53
- package/test/unit/bin/diff-changes.test.ts +97 -96
- package/test/unit/bin/diff.test.ts +53 -48
- package/test/unit/bin/git-command.test.ts +71 -0
- package/test/unit/bin/git.test.ts +246 -89
- package/test/unit/bin/logger.test.ts +55 -0
- package/test/unit/bin/logging.test.ts +52 -0
- package/test/unit/bin/utils/config/load-config.test.ts +63 -26
- package/test/unit/bin/utils/config/parser.test.ts +81 -27
- package/test/unit/bin/utils/files.test.ts +19 -33
- package/test/unit/bin/utils/path/repo-relative.test.ts +250 -0
- package/test/unit/bin/utils/path/schema.test.ts +65 -0
- package/test/unit/should-built-and-test.test.ts +40 -38
|
@@ -2,6 +2,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
2
2
|
import { getChangedActors } from '../../../bin/diff-changes.js';
|
|
3
3
|
import * as DiffJsonSchema from '../../../bin/diff-json-schema.js';
|
|
4
4
|
import * as Dockerignore from '../../../bin/dockerignore.js';
|
|
5
|
+
import { logger } from '../../../bin/logger.js';
|
|
5
6
|
const miniActor = {
|
|
6
7
|
actorFullName: 'foo/bar',
|
|
7
8
|
folder: 'actors/foo_bar',
|
|
@@ -27,29 +28,29 @@ const amazonActor = {
|
|
|
27
28
|
const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
|
|
28
29
|
describe('getChangedActors', () => {
|
|
29
30
|
beforeEach(() => {
|
|
30
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
31
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
|
|
31
32
|
});
|
|
32
|
-
it('returns empty array when no files changed', () => {
|
|
33
|
-
expect(getChangedActors({ filepathsChanged: [], actorConfigs, commits })).toEqual([]);
|
|
33
|
+
it('returns empty array when no files changed', async () => {
|
|
34
|
+
expect(await getChangedActors({ filepathsChanged: [], actorConfigs, commits })).toEqual([]);
|
|
34
35
|
});
|
|
35
|
-
it('returns empty array when only ignored top-level files changed', () => {
|
|
36
|
-
const result = getChangedActors({
|
|
36
|
+
it('returns empty array when only ignored top-level files changed', async () => {
|
|
37
|
+
const result = await getChangedActors({
|
|
37
38
|
filepathsChanged: ['.gitignore', 'README.md', '.husky/pre-commit', '.vscode/settings.json'],
|
|
38
39
|
actorConfigs,
|
|
39
40
|
commits,
|
|
40
41
|
});
|
|
41
42
|
expect(result).toEqual([]);
|
|
42
43
|
});
|
|
43
|
-
it('returns the actor when a functional file in its folder changes', () => {
|
|
44
|
-
const result = getChangedActors({
|
|
44
|
+
it('returns the actor when a functional file in its folder changes', async () => {
|
|
45
|
+
const result = await getChangedActors({
|
|
45
46
|
filepathsChanged: ['actors/foo_bar/src/main.ts'],
|
|
46
47
|
actorConfigs,
|
|
47
48
|
commits,
|
|
48
49
|
});
|
|
49
50
|
expect(result).toEqual([miniActor]);
|
|
50
51
|
});
|
|
51
|
-
it('returns actor when isLatest and README in actor folder changed (cosmetic)', () => {
|
|
52
|
-
const result = getChangedActors({
|
|
52
|
+
it('returns actor when isLatest and README in actor folder changed (cosmetic)', async () => {
|
|
53
|
+
const result = await getChangedActors({
|
|
53
54
|
filepathsChanged: ['actors/foo_bar/README.md'],
|
|
54
55
|
actorConfigs,
|
|
55
56
|
commits,
|
|
@@ -57,8 +58,8 @@ describe('getChangedActors', () => {
|
|
|
57
58
|
});
|
|
58
59
|
expect(result).toEqual([miniActor]);
|
|
59
60
|
});
|
|
60
|
-
it('does not return actor when not isLatest and only README changed (cosmetic)', () => {
|
|
61
|
-
const result = getChangedActors({
|
|
61
|
+
it('does not return actor when not isLatest and only README changed (cosmetic)', async () => {
|
|
62
|
+
const result = await getChangedActors({
|
|
62
63
|
filepathsChanged: ['actors/foo_bar/README.md'],
|
|
63
64
|
actorConfigs,
|
|
64
65
|
commits,
|
|
@@ -66,9 +67,9 @@ describe('getChangedActors', () => {
|
|
|
66
67
|
});
|
|
67
68
|
expect(result).toEqual([]);
|
|
68
69
|
});
|
|
69
|
-
it('returns actor when isLatest and JSON file has only cosmetic changes', () => {
|
|
70
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
71
|
-
const result = getChangedActors({
|
|
70
|
+
it('returns actor when isLatest and JSON file has only cosmetic changes', async () => {
|
|
71
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
|
|
72
|
+
const result = await getChangedActors({
|
|
72
73
|
filepathsChanged: ['actors/foo_bar/.actor/actor.json'],
|
|
73
74
|
actorConfigs,
|
|
74
75
|
commits,
|
|
@@ -76,9 +77,9 @@ describe('getChangedActors', () => {
|
|
|
76
77
|
});
|
|
77
78
|
expect(result).toEqual([miniActor]);
|
|
78
79
|
});
|
|
79
|
-
it('does not return actor when not isLatest and JSON file has only cosmetic changes', () => {
|
|
80
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
81
|
-
const result = getChangedActors({
|
|
80
|
+
it('does not return actor when not isLatest and JSON file has only cosmetic changes', async () => {
|
|
81
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
|
|
82
|
+
const result = await getChangedActors({
|
|
82
83
|
filepathsChanged: ['actors/foo_bar/.actor/actor.json'],
|
|
83
84
|
actorConfigs,
|
|
84
85
|
commits,
|
|
@@ -86,18 +87,18 @@ describe('getChangedActors', () => {
|
|
|
86
87
|
});
|
|
87
88
|
expect(result).toEqual([]);
|
|
88
89
|
});
|
|
89
|
-
it('returns actor when JSON file has functional changes', () => {
|
|
90
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
91
|
-
const result = getChangedActors({
|
|
90
|
+
it('returns actor when JSON file has functional changes', async () => {
|
|
91
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
|
|
92
|
+
const result = await getChangedActors({
|
|
92
93
|
filepathsChanged: ['actors/foo_bar/.actor/actor.json'],
|
|
93
94
|
actorConfigs,
|
|
94
95
|
commits,
|
|
95
96
|
});
|
|
96
97
|
expect(result).toEqual([miniActor]);
|
|
97
98
|
});
|
|
98
|
-
it('JSON file in actor folder but outside .actor/ is functional, not checked for cosmetic', () => {
|
|
99
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
100
|
-
const result = getChangedActors({
|
|
99
|
+
it('JSON file in actor folder but outside .actor/ is functional, not checked for cosmetic', async () => {
|
|
100
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
|
|
101
|
+
const result = await getChangedActors({
|
|
101
102
|
filepathsChanged: ['actors/foo_bar/package.json'],
|
|
102
103
|
actorConfigs,
|
|
103
104
|
commits,
|
|
@@ -106,9 +107,9 @@ describe('getChangedActors', () => {
|
|
|
106
107
|
expect(result).toEqual([miniActor]);
|
|
107
108
|
expect(DiffJsonSchema.isCosmeticOnlyJsonSchemaChange).not.toHaveBeenCalled();
|
|
108
109
|
});
|
|
109
|
-
it('JSON file under .actor/ inside actor folder is checked for cosmetic changes', () => {
|
|
110
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
111
|
-
const result = getChangedActors({
|
|
110
|
+
it('JSON file under .actor/ inside actor folder is checked for cosmetic changes', async () => {
|
|
111
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
|
|
112
|
+
const result = await getChangedActors({
|
|
112
113
|
filepathsChanged: ['actors/foo_bar/.actor/input_schema.json'],
|
|
113
114
|
actorConfigs,
|
|
114
115
|
commits,
|
|
@@ -116,8 +117,8 @@ describe('getChangedActors', () => {
|
|
|
116
117
|
});
|
|
117
118
|
expect(result).toEqual([miniActor]);
|
|
118
119
|
});
|
|
119
|
-
it('does not trigger narrow-context actor when shared file changes', () => {
|
|
120
|
-
const result = getChangedActors({
|
|
120
|
+
it('does not trigger narrow-context actor when shared file changes', async () => {
|
|
121
|
+
const result = await getChangedActors({
|
|
121
122
|
filepathsChanged: ['shared/utils.ts'],
|
|
122
123
|
actorConfigs,
|
|
123
124
|
commits,
|
|
@@ -125,8 +126,8 @@ describe('getChangedActors', () => {
|
|
|
125
126
|
expect(result).toContainEqual(miniActor);
|
|
126
127
|
expect(result).not.toContainEqual(standaloneActor);
|
|
127
128
|
});
|
|
128
|
-
it('root-level changelog outside any actor folder is cosmetic for every actor when isLatest', () => {
|
|
129
|
-
const result = getChangedActors({
|
|
129
|
+
it('root-level changelog outside any actor folder is cosmetic for every actor when isLatest', async () => {
|
|
130
|
+
const result = await getChangedActors({
|
|
130
131
|
filepathsChanged: ['CHANGELOG.md'],
|
|
131
132
|
actorConfigs,
|
|
132
133
|
commits,
|
|
@@ -135,8 +136,8 @@ describe('getChangedActors', () => {
|
|
|
135
136
|
expect(result).toEqual(expect.arrayContaining([miniActor, standaloneActor]));
|
|
136
137
|
expect(result).toHaveLength(2);
|
|
137
138
|
});
|
|
138
|
-
it('root-level changelog is not cosmetic-triggered when not isLatest', () => {
|
|
139
|
-
const result = getChangedActors({
|
|
139
|
+
it('root-level changelog is not cosmetic-triggered when not isLatest', async () => {
|
|
140
|
+
const result = await getChangedActors({
|
|
140
141
|
filepathsChanged: ['CHANGELOG.md'],
|
|
141
142
|
actorConfigs,
|
|
142
143
|
commits,
|
|
@@ -144,16 +145,16 @@ describe('getChangedActors', () => {
|
|
|
144
145
|
});
|
|
145
146
|
expect(result).toEqual([]);
|
|
146
147
|
});
|
|
147
|
-
it('triggers narrow-context actor when its own folder changes', () => {
|
|
148
|
-
const result = getChangedActors({
|
|
148
|
+
it('triggers narrow-context actor when its own folder changes', async () => {
|
|
149
|
+
const result = await getChangedActors({
|
|
149
150
|
filepathsChanged: ['standalone-actors/standalone/src/main.ts'],
|
|
150
151
|
actorConfigs,
|
|
151
152
|
commits,
|
|
152
153
|
});
|
|
153
154
|
expect(result).toContainEqual(standaloneActor);
|
|
154
155
|
});
|
|
155
|
-
it('deduplicates actors when multiple files in same actor folder change', () => {
|
|
156
|
-
const result = getChangedActors({
|
|
156
|
+
it('deduplicates actors when multiple files in same actor folder change', async () => {
|
|
157
|
+
const result = await getChangedActors({
|
|
157
158
|
filepathsChanged: ['actors/foo_bar/src/main.ts', 'actors/foo_bar/package.json'],
|
|
158
159
|
actorConfigs,
|
|
159
160
|
commits,
|
|
@@ -161,8 +162,8 @@ describe('getChangedActors', () => {
|
|
|
161
162
|
expect(result).toHaveLength(1);
|
|
162
163
|
expect(result).toContainEqual(miniActor);
|
|
163
164
|
});
|
|
164
|
-
it('handles mixed changes: returns both broad and narrow-context actors', () => {
|
|
165
|
-
const result = getChangedActors({
|
|
165
|
+
it('handles mixed changes: returns both broad and narrow-context actors', async () => {
|
|
166
|
+
const result = await getChangedActors({
|
|
166
167
|
filepathsChanged: ['actors/foo_bar/src/main.ts', 'standalone-actors/standalone/Dockerfile'],
|
|
167
168
|
actorConfigs,
|
|
168
169
|
commits,
|
|
@@ -170,7 +171,7 @@ describe('getChangedActors', () => {
|
|
|
170
171
|
expect(result).toContainEqual(miniActor);
|
|
171
172
|
expect(result).toContainEqual(standaloneActor);
|
|
172
173
|
});
|
|
173
|
-
it('matches folder where folder name differs from actor name', () => {
|
|
174
|
+
it('matches folder where folder name differs from actor name', async () => {
|
|
174
175
|
const ownerlessActor = {
|
|
175
176
|
actorFullName: 'myteam/shopify-scraper',
|
|
176
177
|
folder: 'actors/shopify',
|
|
@@ -178,14 +179,14 @@ describe('getChangedActors', () => {
|
|
|
178
179
|
dockerContextDir: '',
|
|
179
180
|
contextPaths: [''],
|
|
180
181
|
};
|
|
181
|
-
const result = getChangedActors({
|
|
182
|
+
const result = await getChangedActors({
|
|
182
183
|
filepathsChanged: ['actors/shopify/src/main.ts'],
|
|
183
184
|
actorConfigs: [ownerlessActor],
|
|
184
185
|
commits,
|
|
185
186
|
});
|
|
186
187
|
expect(result).toEqual([ownerlessActor]);
|
|
187
188
|
});
|
|
188
|
-
it('in single-actor repo, .actor/ changes trigger builds', () => {
|
|
189
|
+
it('in single-actor repo, .actor/ changes trigger builds', async () => {
|
|
189
190
|
const rootActor = {
|
|
190
191
|
actorFullName: 'myteam/my-actor',
|
|
191
192
|
folder: '',
|
|
@@ -193,30 +194,30 @@ describe('getChangedActors', () => {
|
|
|
193
194
|
dockerContextDir: '',
|
|
194
195
|
contextPaths: [''],
|
|
195
196
|
};
|
|
196
|
-
const result = getChangedActors({
|
|
197
|
+
const result = await getChangedActors({
|
|
197
198
|
filepathsChanged: ['.actor/actor.json'],
|
|
198
199
|
actorConfigs: [rootActor],
|
|
199
200
|
commits,
|
|
200
201
|
});
|
|
201
202
|
expect(result).toEqual([rootActor]);
|
|
202
203
|
});
|
|
203
|
-
it('in multi-actor repo, .actor/ changes only trigger broad-context actors', () => {
|
|
204
|
-
const result = getChangedActors({
|
|
204
|
+
it('in multi-actor repo, .actor/ changes only trigger broad-context actors', async () => {
|
|
205
|
+
const result = await getChangedActors({
|
|
205
206
|
filepathsChanged: ['.actor/actor.json'],
|
|
206
207
|
actorConfigs,
|
|
207
208
|
commits,
|
|
208
209
|
});
|
|
209
210
|
expect(result).toEqual([miniActor]);
|
|
210
211
|
});
|
|
211
|
-
it('file paths are matched case-insensitively', () => {
|
|
212
|
-
const result = getChangedActors({
|
|
212
|
+
it('file paths are matched case-insensitively', async () => {
|
|
213
|
+
const result = await getChangedActors({
|
|
213
214
|
filepathsChanged: ['Actors/FOO_BAR/Main.ts'],
|
|
214
215
|
actorConfigs,
|
|
215
216
|
commits,
|
|
216
217
|
});
|
|
217
218
|
expect(result).toEqual([miniActor]);
|
|
218
219
|
});
|
|
219
|
-
it('triggers actor with contextPaths override when file matches an override path', () => {
|
|
220
|
+
it('triggers actor with contextPaths override when file matches an override path', async () => {
|
|
220
221
|
const overrideActor = {
|
|
221
222
|
actorFullName: 'team/override-actor',
|
|
222
223
|
folder: 'actors/override',
|
|
@@ -224,14 +225,14 @@ describe('getChangedActors', () => {
|
|
|
224
225
|
dockerContextDir: 'actors/override',
|
|
225
226
|
contextPaths: ['actors/override', 'packages'],
|
|
226
227
|
};
|
|
227
|
-
const result = getChangedActors({
|
|
228
|
+
const result = await getChangedActors({
|
|
228
229
|
filepathsChanged: ['packages/shared/utils.ts'],
|
|
229
230
|
actorConfigs: [overrideActor],
|
|
230
231
|
commits,
|
|
231
232
|
});
|
|
232
233
|
expect(result).toEqual([overrideActor]);
|
|
233
234
|
});
|
|
234
|
-
it('does not trigger actor with contextPaths override when file is outside all override paths', () => {
|
|
235
|
+
it('does not trigger actor with contextPaths override when file is outside all override paths', async () => {
|
|
235
236
|
const overrideActor = {
|
|
236
237
|
actorFullName: 'team/override-actor',
|
|
237
238
|
folder: 'actors/override',
|
|
@@ -239,14 +240,14 @@ describe('getChangedActors', () => {
|
|
|
239
240
|
dockerContextDir: 'actors/override',
|
|
240
241
|
contextPaths: ['actors/override', 'packages'],
|
|
241
242
|
};
|
|
242
|
-
const result = getChangedActors({
|
|
243
|
+
const result = await getChangedActors({
|
|
243
244
|
filepathsChanged: ['other-dir/file.ts'],
|
|
244
245
|
actorConfigs: [overrideActor],
|
|
245
246
|
commits,
|
|
246
247
|
});
|
|
247
248
|
expect(result).toEqual([]);
|
|
248
249
|
});
|
|
249
|
-
it('broad-context actor skips files in sibling actor folders', () => {
|
|
250
|
+
it('broad-context actor skips files in sibling actor folders', async () => {
|
|
250
251
|
const actorA = {
|
|
251
252
|
actorFullName: 'team/actor-a',
|
|
252
253
|
folder: 'actors/a',
|
|
@@ -261,14 +262,14 @@ describe('getChangedActors', () => {
|
|
|
261
262
|
dockerContextDir: '',
|
|
262
263
|
contextPaths: [''],
|
|
263
264
|
};
|
|
264
|
-
const result = getChangedActors({
|
|
265
|
+
const result = await getChangedActors({
|
|
265
266
|
filepathsChanged: ['actors/b/src/main.ts'],
|
|
266
267
|
actorConfigs: [actorA, actorB],
|
|
267
268
|
commits,
|
|
268
269
|
});
|
|
269
270
|
expect(result).toEqual([actorB]);
|
|
270
271
|
});
|
|
271
|
-
it('root actor (folder="") is excluded from sibling actor folder files', () => {
|
|
272
|
+
it('root actor (folder="") is excluded from sibling actor folder files', async () => {
|
|
272
273
|
const rootActor = {
|
|
273
274
|
actorFullName: 'team/root',
|
|
274
275
|
folder: '',
|
|
@@ -283,7 +284,7 @@ describe('getChangedActors', () => {
|
|
|
283
284
|
dockerContextDir: 'actors/child',
|
|
284
285
|
contextPaths: ['actors/child'],
|
|
285
286
|
};
|
|
286
|
-
const result = getChangedActors({
|
|
287
|
+
const result = await getChangedActors({
|
|
287
288
|
filepathsChanged: ['actors/child/src/main.ts'],
|
|
288
289
|
actorConfigs: [rootActor, childActor],
|
|
289
290
|
commits,
|
|
@@ -291,7 +292,7 @@ describe('getChangedActors', () => {
|
|
|
291
292
|
expect(result).not.toContainEqual(rootActor);
|
|
292
293
|
expect(result).toContainEqual(childActor);
|
|
293
294
|
});
|
|
294
|
-
it('root actor (folder="") sees files outside any actor folder', () => {
|
|
295
|
+
it('root actor (folder="") sees files outside any actor folder', async () => {
|
|
295
296
|
const rootActor = {
|
|
296
297
|
actorFullName: 'team/root',
|
|
297
298
|
folder: '',
|
|
@@ -306,7 +307,7 @@ describe('getChangedActors', () => {
|
|
|
306
307
|
dockerContextDir: 'actors/child',
|
|
307
308
|
contextPaths: ['actors/child'],
|
|
308
309
|
};
|
|
309
|
-
const result = getChangedActors({
|
|
310
|
+
const result = await getChangedActors({
|
|
310
311
|
filepathsChanged: ['lib/shared-utils.ts'],
|
|
311
312
|
actorConfigs: [rootActor, childActor],
|
|
312
313
|
commits,
|
|
@@ -314,35 +315,35 @@ describe('getChangedActors', () => {
|
|
|
314
315
|
expect(result).toContainEqual(rootActor);
|
|
315
316
|
expect(result).not.toContainEqual(childActor);
|
|
316
317
|
});
|
|
317
|
-
it('file matched by .dockerignore is treated as ignored', () => {
|
|
318
|
+
it('file matched by .dockerignore is treated as ignored', async () => {
|
|
318
319
|
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue((filePath) => filePath === 'actors/foo_bar/node_modules/foo.js');
|
|
319
|
-
const result = getChangedActors({
|
|
320
|
+
const result = await getChangedActors({
|
|
320
321
|
filepathsChanged: ['actors/foo_bar/node_modules/foo.js'],
|
|
321
322
|
actorConfigs: [miniActor],
|
|
322
323
|
commits,
|
|
323
324
|
});
|
|
324
325
|
expect(result).toEqual([]);
|
|
325
326
|
});
|
|
326
|
-
it('file not matched by .dockerignore is classified normally', () => {
|
|
327
|
+
it('file not matched by .dockerignore is classified normally', async () => {
|
|
327
328
|
vi.spyOn(Dockerignore, 'loadDockerIgnore').mockReturnValue((filePath) => filePath.includes('node_modules'));
|
|
328
|
-
const result = getChangedActors({
|
|
329
|
+
const result = await getChangedActors({
|
|
329
330
|
filepathsChanged: ['actors/foo_bar/src/main.ts'],
|
|
330
331
|
actorConfigs: [miniActor],
|
|
331
332
|
commits,
|
|
332
333
|
});
|
|
333
334
|
expect(result).toEqual([miniActor]);
|
|
334
335
|
});
|
|
335
|
-
it('JSON file in context but outside actor folder is functional (not checked for cosmetic)', () => {
|
|
336
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
337
|
-
const result = getChangedActors({
|
|
336
|
+
it('JSON file in context but outside actor folder is functional (not checked for cosmetic)', async () => {
|
|
337
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(true);
|
|
338
|
+
const result = await getChangedActors({
|
|
338
339
|
filepathsChanged: ['lib/config.json'],
|
|
339
340
|
actorConfigs: [miniActor],
|
|
340
341
|
commits,
|
|
341
342
|
});
|
|
342
343
|
expect(result).toEqual([miniActor]);
|
|
343
344
|
});
|
|
344
|
-
it('README outside actor folder but inside context is ignored (not cosmetic)', () => {
|
|
345
|
-
const result = getChangedActors({
|
|
345
|
+
it('README outside actor folder but inside context is ignored (not cosmetic)', async () => {
|
|
346
|
+
const result = await getChangedActors({
|
|
346
347
|
filepathsChanged: ['docs/README.md'],
|
|
347
348
|
actorConfigs: [miniActor],
|
|
348
349
|
commits,
|
|
@@ -350,8 +351,8 @@ describe('getChangedActors', () => {
|
|
|
350
351
|
});
|
|
351
352
|
expect(result).toEqual([]);
|
|
352
353
|
});
|
|
353
|
-
it('README inside actor folder is cosmetic', () => {
|
|
354
|
-
const result = getChangedActors({
|
|
354
|
+
it('README inside actor folder is cosmetic', async () => {
|
|
355
|
+
const result = await getChangedActors({
|
|
355
356
|
filepathsChanged: ['actors/foo_bar/README.md'],
|
|
356
357
|
actorConfigs: [miniActor],
|
|
357
358
|
commits,
|
|
@@ -359,40 +360,40 @@ describe('getChangedActors', () => {
|
|
|
359
360
|
});
|
|
360
361
|
expect(result).toEqual([miniActor]);
|
|
361
362
|
});
|
|
362
|
-
it('hoists a standalone actor own top-level dev file relative to its context before checking the ignore list', () => {
|
|
363
|
-
const result = getChangedActors({
|
|
363
|
+
it('hoists a standalone actor own top-level dev file relative to its context before checking the ignore list', async () => {
|
|
364
|
+
const result = await getChangedActors({
|
|
364
365
|
filepathsChanged: ['standalone-actors/standalone/.eslintrc'],
|
|
365
366
|
actorConfigs,
|
|
366
367
|
commits,
|
|
367
368
|
});
|
|
368
369
|
expect(result).toEqual([]);
|
|
369
370
|
});
|
|
370
|
-
it('does not special-case code/ and shared/ prefixes anymore — must be declared via overrideActorContext', () => {
|
|
371
|
-
const result = getChangedActors({
|
|
371
|
+
it('does not special-case code/ and shared/ prefixes anymore — must be declared via overrideActorContext', async () => {
|
|
372
|
+
const result = await getChangedActors({
|
|
372
373
|
filepathsChanged: ['code/.eslintrc'],
|
|
373
374
|
actorConfigs: [miniActor],
|
|
374
375
|
commits,
|
|
375
376
|
});
|
|
376
377
|
expect(result).toEqual([miniActor]);
|
|
377
378
|
});
|
|
378
|
-
it('ignores code/.eslintrc when "code" is declared via overrideActorContext', () => {
|
|
379
|
-
const result = getChangedActors({
|
|
379
|
+
it('ignores code/.eslintrc when "code" is declared via overrideActorContext', async () => {
|
|
380
|
+
const result = await getChangedActors({
|
|
380
381
|
filepathsChanged: ['code/.eslintrc'],
|
|
381
382
|
actorConfigs: [amazonActor],
|
|
382
383
|
commits,
|
|
383
384
|
});
|
|
384
385
|
expect(result).toEqual([]);
|
|
385
386
|
});
|
|
386
|
-
it('shared/Dockerfile declared via overrideActorContext is functional', () => {
|
|
387
|
-
const result = getChangedActors({
|
|
387
|
+
it('shared/Dockerfile declared via overrideActorContext is functional', async () => {
|
|
388
|
+
const result = await getChangedActors({
|
|
388
389
|
filepathsChanged: ['shared/Dockerfile'],
|
|
389
390
|
actorConfigs: [amazonActor],
|
|
390
391
|
commits,
|
|
391
392
|
});
|
|
392
393
|
expect(result).toEqual([amazonActor]);
|
|
393
394
|
});
|
|
394
|
-
it('code/README.md declared via overrideActorContext is ignored (outside actor folder)', () => {
|
|
395
|
-
const result = getChangedActors({
|
|
395
|
+
it('code/README.md declared via overrideActorContext is ignored (outside actor folder)', async () => {
|
|
396
|
+
const result = await getChangedActors({
|
|
396
397
|
filepathsChanged: ['code/README.md'],
|
|
397
398
|
actorConfigs: [amazonActor],
|
|
398
399
|
commits,
|
|
@@ -403,19 +404,19 @@ describe('getChangedActors', () => {
|
|
|
403
404
|
});
|
|
404
405
|
describe('getChangedActors logging', () => {
|
|
405
406
|
beforeEach(() => {
|
|
406
|
-
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').
|
|
407
|
-
vi.spyOn(
|
|
407
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockResolvedValue(false);
|
|
408
|
+
vi.spyOn(logger, 'info').mockImplementation(() => undefined);
|
|
408
409
|
});
|
|
409
|
-
it('logs a single "specific" group for a single actor with one functional file', () => {
|
|
410
|
-
getChangedActors({
|
|
410
|
+
it('logs a single "specific" group for a single actor with one functional file', async () => {
|
|
411
|
+
await getChangedActors({
|
|
411
412
|
filepathsChanged: ['actors/foo_bar/src/main.ts'],
|
|
412
413
|
actorConfigs: [miniActor],
|
|
413
414
|
commits,
|
|
414
415
|
});
|
|
415
|
-
expect(
|
|
416
|
-
expect(
|
|
416
|
+
expect(logger.info).toHaveBeenCalledWith('[DIFF]: Changes specific to actor foo/bar: actors/foo_bar/src/main.ts');
|
|
417
|
+
expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: foo/bar');
|
|
417
418
|
});
|
|
418
|
-
it('logs a single "shared" group when two actors are triggered by the exact same file', () => {
|
|
419
|
+
it('logs a single "shared" group when two actors are triggered by the exact same file', async () => {
|
|
419
420
|
const actorA = {
|
|
420
421
|
actorFullName: 'team/actor-a',
|
|
421
422
|
folder: 'actors/a',
|
|
@@ -430,16 +431,16 @@ describe('getChangedActors logging', () => {
|
|
|
430
431
|
dockerContextDir: '',
|
|
431
432
|
contextPaths: ['', 'shared'],
|
|
432
433
|
};
|
|
433
|
-
getChangedActors({
|
|
434
|
+
await getChangedActors({
|
|
434
435
|
filepathsChanged: ['shared/shared.ts'],
|
|
435
436
|
actorConfigs: [actorA, actorB],
|
|
436
437
|
commits,
|
|
437
438
|
});
|
|
438
|
-
expect(
|
|
439
|
-
expect(
|
|
440
|
-
expect(
|
|
439
|
+
expect(logger.info).toHaveBeenCalledWith('[DIFF]: Shared changes for actors team/actor-a, team/actor-b: shared/shared.ts');
|
|
440
|
+
expect(logger.info).not.toHaveBeenCalledWith(expect.stringContaining('Changes specific to actor'));
|
|
441
|
+
expect(logger.info).toHaveBeenCalledWith('[DIFF]: Actors to be built and tested: team/actor-a, team/actor-b');
|
|
441
442
|
});
|
|
442
|
-
it('logs shared and specific groups in descending-size order for partial overlap across actors', () => {
|
|
443
|
+
it('logs shared and specific groups in descending-size order for partial overlap across actors', async () => {
|
|
443
444
|
const actorA = {
|
|
444
445
|
actorFullName: 'team/actor-a',
|
|
445
446
|
folder: 'actors/a',
|
|
@@ -454,12 +455,12 @@ describe('getChangedActors logging', () => {
|
|
|
454
455
|
dockerContextDir: '',
|
|
455
456
|
contextPaths: [''],
|
|
456
457
|
};
|
|
457
|
-
getChangedActors({
|
|
458
|
+
await getChangedActors({
|
|
458
459
|
filepathsChanged: ['shared.ts', 'actors/a/a-only.ts', 'actors/b/b-only.ts'],
|
|
459
460
|
actorConfigs: [actorA, actorB],
|
|
460
461
|
commits,
|
|
461
462
|
});
|
|
462
|
-
const errorCalls =
|
|
463
|
+
const errorCalls = logger.info.mock.calls.map((call) => call[0]);
|
|
463
464
|
expect(errorCalls).toEqual([
|
|
464
465
|
'[DIFF]: Shared changes for actors team/actor-a, team/actor-b: shared.ts',
|
|
465
466
|
'[DIFF]: Changes specific to actor team/actor-a: actors/a/a-only.ts',
|
|
@@ -467,15 +468,15 @@ describe('getChangedActors logging', () => {
|
|
|
467
468
|
'[DIFF]: Actors to be built and tested: team/actor-a, team/actor-b',
|
|
468
469
|
]);
|
|
469
470
|
});
|
|
470
|
-
it('logs no group lines when zero actors changed', () => {
|
|
471
|
-
getChangedActors({
|
|
471
|
+
it('logs no group lines when zero actors changed', async () => {
|
|
472
|
+
await getChangedActors({
|
|
472
473
|
filepathsChanged: ['.gitignore', 'README.md'],
|
|
473
474
|
actorConfigs,
|
|
474
475
|
commits,
|
|
475
476
|
});
|
|
476
|
-
expect(
|
|
477
|
-
expect(
|
|
478
|
-
expect(
|
|
477
|
+
expect(logger.info).not.toHaveBeenCalledWith(expect.stringContaining('Shared changes'));
|
|
478
|
+
expect(logger.info).not.toHaveBeenCalledWith(expect.stringContaining('Changes specific to'));
|
|
479
|
+
expect(logger.info).toHaveBeenCalledWith('[DIFF]: No relevant files changed, skipping builds and tests');
|
|
479
480
|
});
|
|
480
481
|
});
|
|
481
482
|
//# sourceMappingURL=diff-changes.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-changes.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-changes.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":"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"}
|