apify-test-tools 0.5.7-beta.1 → 0.5.7-beta.3
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/_check_code.yaml +0 -1
- package/.github/workflows/_update_release_metadata.yaml +1 -1
- package/.github/workflows/manual_release_stable.yaml +1 -0
- package/.github/workflows/on_master.yaml +2 -0
- package/bin/diff-changes.ts +127 -0
- package/bin/diff-json-schema.ts +43 -0
- package/bin/git.ts +13 -4
- package/bin/main.ts +9 -5
- package/bin/utils.ts +2 -119
- package/dist/bin/diff-changes.d.ts +16 -0
- package/dist/bin/diff-changes.d.ts.map +1 -0
- package/dist/bin/diff-changes.js +91 -0
- package/dist/bin/diff-changes.js.map +1 -0
- package/dist/bin/diff-json-schema.d.ts +7 -0
- package/dist/bin/diff-json-schema.d.ts.map +1 -0
- package/dist/bin/diff-json-schema.js +40 -0
- package/dist/bin/diff-json-schema.js.map +1 -0
- package/dist/bin/git.d.ts +1 -1
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +12 -4
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/main.js +8 -5
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/utils.d.ts +0 -14
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +1 -88
- package/dist/bin/utils.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.d.ts +2 -0
- package/dist/test/unit/bin/diff-changes.test.d.ts.map +1 -0
- package/dist/test/unit/bin/diff-changes.test.js +152 -0
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -0
- package/dist/test/unit/bin/diff.test.d.ts +2 -0
- package/dist/test/unit/bin/diff.test.d.ts.map +1 -0
- package/dist/test/unit/bin/diff.test.js +133 -0
- package/dist/test/unit/bin/diff.test.js.map +1 -0
- package/dist/test/unit/parse-commit.test.js +1 -1
- package/dist/test/unit/parse-commit.test.js.map +1 -1
- package/dist/test/unit/should-built-and-test.test.js +93 -30
- package/dist/test/unit/should-built-and-test.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/test/unit/bin/diff-changes.test.ts +175 -0
- package/test/unit/bin/diff.test.ts +214 -0
- package/test/unit/parse-commit.test.ts +2 -1
- package/test/unit/should-built-and-test.test.ts +115 -31
package/dist/bin/git.js
CHANGED
|
@@ -5,8 +5,10 @@ const GIT_LOG_FORMAT = ['%H', '%aN<%aE>', '%aD', '%s'].join(GIT_FORMAT_SEPARATOR
|
|
|
5
5
|
* Gets the list of changed files between the given commits (inclusive).
|
|
6
6
|
*/
|
|
7
7
|
export const getChangedFiles = (commits) => {
|
|
8
|
-
const
|
|
9
|
-
|
|
8
|
+
const changedFilesString = spawnCommandInGhWorkspace(`git diff --name-only ${commits[0].sha}~..${commits[commits.length - 1].sha}`);
|
|
9
|
+
const changedFiles = changedFilesString.split('\n');
|
|
10
|
+
console.error(`Changed files (up to 50): ${changedFiles.slice(0, 50).join(', ')}`);
|
|
11
|
+
return changedFiles;
|
|
10
12
|
};
|
|
11
13
|
/**
|
|
12
14
|
* Gets the commits between sourceBranch and targetBranch (exclusive).
|
|
@@ -18,8 +20,14 @@ export const getCommits = ({ sourceBranch, targetBranch, baseCommit: baseCommitS
|
|
|
18
20
|
commits.reverse();
|
|
19
21
|
const baseCommitIndex = commits.findIndex((commit) => commit.sha === baseCommitSha);
|
|
20
22
|
const hasBaseCommit = baseCommitIndex !== -1;
|
|
21
|
-
if (hasBaseCommit)
|
|
22
|
-
|
|
23
|
+
if (hasBaseCommit) {
|
|
24
|
+
const commitsUpToBaseCommit = commits.slice(baseCommitIndex + 1);
|
|
25
|
+
console.error(`Found base commit ${baseCommitSha} at index ${baseCommitIndex}, returning ${commitsUpToBaseCommit.length} commits after it`);
|
|
26
|
+
console.error(`Commits being returned: ${commitsUpToBaseCommit.map((c) => c.sha).join(', ')}`);
|
|
27
|
+
return commitsUpToBaseCommit;
|
|
28
|
+
}
|
|
29
|
+
console.error(`Base commit ${baseCommitSha} not found in the commit range, returning all ${commits.length} commits`);
|
|
30
|
+
console.error(`Commits being returned: ${commits.map((c) => c.sha).join(', ')}`);
|
|
23
31
|
return commits;
|
|
24
32
|
};
|
|
25
33
|
export const getCommitInfo = (commitSha) => {
|
package/dist/bin/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAiB,EAAE,EAAE;IACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/main.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import process from 'process';
|
|
2
|
+
import process from 'node:process';
|
|
3
3
|
import yargs from 'yargs';
|
|
4
4
|
import { hideBin } from 'yargs/helpers';
|
|
5
|
-
import { getRepoActors, getChangedActors, spawnCommandInGhWorkspace, setCwd } from './utils.js';
|
|
6
5
|
import { runBuilds } from './build.js';
|
|
6
|
+
import { getChangedActors } from './diff-changes.js';
|
|
7
7
|
import { getChangedFiles, getCommits } from './git.js';
|
|
8
8
|
import { getPushData } from './github.js';
|
|
9
9
|
import { notifyToSlack } from './slack.js';
|
|
10
10
|
import { reportTestResults } from './test-report.js';
|
|
11
|
+
import { getRepoActors, setCwd, spawnCommandInGhWorkspace } from './utils.js';
|
|
11
12
|
/**
|
|
12
13
|
* Middlewares to be run before every command execution
|
|
13
14
|
*/
|
|
@@ -59,7 +60,7 @@ await yargs()
|
|
|
59
60
|
const commits = getCommits(args);
|
|
60
61
|
const changedFiles = getChangedFiles(commits);
|
|
61
62
|
const actorConfigs = await getRepoActors();
|
|
62
|
-
const
|
|
63
|
+
const actorsChanged = getChangedActors({ filepathsChanged: changedFiles, actorConfigs, isLatest: false, commits });
|
|
63
64
|
console.log(JSON.stringify(actorsChanged));
|
|
64
65
|
})
|
|
65
66
|
.command('report-tests', '', (args) => args
|
|
@@ -73,9 +74,10 @@ await yargs()
|
|
|
73
74
|
const commits = getCommits(args);
|
|
74
75
|
const changedFiles = getChangedFiles(commits);
|
|
75
76
|
const actorConfigs = await getRepoActors();
|
|
76
|
-
const
|
|
77
|
+
const actorsChanged = getChangedActors({
|
|
77
78
|
filepathsChanged: changedFiles,
|
|
78
79
|
actorConfigs,
|
|
80
|
+
commits,
|
|
79
81
|
});
|
|
80
82
|
// https://github.com/apify-store/google-maps#:actors/lukaskrivka_google-maps-with-contact-details
|
|
81
83
|
// git@github.com:apify-store/google-maps#:actors/lukaskrivka_google-maps-with-contact-details
|
|
@@ -96,10 +98,11 @@ await yargs()
|
|
|
96
98
|
const { branch, changedFiles, repoUrl, commits, changelog, repository, author } = await getPushData(args.pushEventPath);
|
|
97
99
|
const isLatest = true;
|
|
98
100
|
const actorConfigs = await getRepoActors();
|
|
99
|
-
const
|
|
101
|
+
const actorsChanged = getChangedActors({
|
|
100
102
|
filepathsChanged: changedFiles,
|
|
101
103
|
actorConfigs,
|
|
102
104
|
isLatest,
|
|
105
|
+
commits,
|
|
103
106
|
});
|
|
104
107
|
const { dryRun, reportSlackChannel, releaseSlackChannel } = args;
|
|
105
108
|
const builds = await runBuilds({
|
package/dist/bin/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../bin/main.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/utils.d.ts
CHANGED
|
@@ -12,18 +12,4 @@ export declare const setCwd: ({ workspace }: {
|
|
|
12
12
|
workspace: string | undefined;
|
|
13
13
|
}) => void;
|
|
14
14
|
export declare const getHeadCommitSha: (githubEvent: GitHubEvent) => string;
|
|
15
|
-
export interface GetChangedActorsResult {
|
|
16
|
-
actorsChanged: ActorConfig[];
|
|
17
|
-
codeChanged: boolean;
|
|
18
|
-
}
|
|
19
|
-
interface ShouldBuildAndTestOptions {
|
|
20
|
-
filepathsChanged: string[];
|
|
21
|
-
actorConfigs: ActorConfig[];
|
|
22
|
-
isLatest?: boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Latest and devel are the same except that for latest we also rebuild with README and CHANGELOG files
|
|
26
|
-
*/
|
|
27
|
-
export declare const getChangedActors: ({ filepathsChanged, actorConfigs, isLatest }: ShouldBuildAndTestOptions) => GetChangedActorsResult;
|
|
28
|
-
export {};
|
|
29
15
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/bin/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACd,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,EAAE,OAAM,MAAM,EAAO,WAgB7E,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,aAAa,WAAW,WAGnD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,eAAe,MAAM,KAAG,MAMlE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,WAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,WAAW,EAAE,CA+B3D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,eAAe;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,SAOtE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,WAAW,WAIxD,CAAC"}
|
package/dist/bin/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import fs from 'node:fs/promises';
|
|
2
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
3
|
export const spawnCommandInGhWorkspace = (command, args = []) => {
|
|
4
4
|
console.error(command, args.join(' '));
|
|
5
5
|
const commandResult = spawnSync(command, args, { shell: true, maxBuffer: 100 * 1024 * 1024 });
|
|
@@ -79,91 +79,4 @@ export const getHeadCommitSha = (githubEvent) => {
|
|
|
79
79
|
? githubEvent.pull_request.head.sha
|
|
80
80
|
: githubEvent.head_commit.id;
|
|
81
81
|
};
|
|
82
|
-
/**
|
|
83
|
-
* Also works for folders
|
|
84
|
-
*/
|
|
85
|
-
const isIgnoredTopLevelFile = (lowercaseFilePath) => {
|
|
86
|
-
// On top level, we should only have dev-only readme and .actor/ is just for apify push CLI (real Actor configs are in /actors)
|
|
87
|
-
const IGNORED_TOP_LEVEL_FILES = ['.vscode/', '.gitignore', 'readme.md', '.husky/', '.eslintrc', '.editorconfig', '.actor/'];
|
|
88
|
-
// Strip out deprecated /code and /shared folders, treat them as top-level code
|
|
89
|
-
const sanitizedLowercaseFilePath = lowercaseFilePath.replace(/^code\//, '').replace(/^shared\//, '');
|
|
90
|
-
return IGNORED_TOP_LEVEL_FILES.some((ignoredFile) => sanitizedLowercaseFilePath.startsWith(ignoredFile));
|
|
91
|
-
};
|
|
92
|
-
const isLatestBuildOnlyFile = (lowercaseFilePath) => {
|
|
93
|
-
if (lowercaseFilePath.endsWith('changelog.md')) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
// Either in /actors or /standalone-actors, we need to rebuild readme but we don't rebuild top-level dev-only readme
|
|
97
|
-
if ((lowercaseFilePath.startsWith('actors/') || lowercaseFilePath.startsWith('standalone-actors/')) && lowercaseFilePath.endsWith('readme.md')) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
};
|
|
102
|
-
/**
|
|
103
|
-
* Latest and devel are the same except that for latest we also rebuild with README and CHANGELOG files
|
|
104
|
-
*/
|
|
105
|
-
export const getChangedActors = ({ filepathsChanged, actorConfigs, isLatest = false }) => {
|
|
106
|
-
let codeChanged = false;
|
|
107
|
-
// folder -> ActorConfig
|
|
108
|
-
const actorsChangedMap = new Map();
|
|
109
|
-
const actorConfigsWithoutStandalone = actorConfigs.filter(({ isStandalone }) => !isStandalone);
|
|
110
|
-
const lowercaseFiles = filepathsChanged.map((file) => file.toLowerCase());
|
|
111
|
-
for (const lowercaseFilePath of lowercaseFiles) {
|
|
112
|
-
if (isIgnoredTopLevelFile(lowercaseFilePath)) {
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
// First we check for specific actors that have configs in /actors or standalone actors in /standalone-actors
|
|
116
|
-
// This matches both actors/username_actorName and standalone-actors/username_actorName
|
|
117
|
-
const changedActorConfigMatch = lowercaseFilePath.match(/^(?:standalone-)?actors\/([^/]+)\/.+/);
|
|
118
|
-
if (changedActorConfigMatch) {
|
|
119
|
-
const sanitizedActorName = changedActorConfigMatch[1].replace('_', '/');
|
|
120
|
-
const actorConfigChanged = actorConfigs.find(({ actorName }) => actorName.toLowerCase() === sanitizedActorName);
|
|
121
|
-
if (actorConfigChanged === undefined) {
|
|
122
|
-
console.warn('changes was found in an actor folder which no longer exists in the current commit', {
|
|
123
|
-
actorName: sanitizedActorName,
|
|
124
|
-
actorFolderName: changedActorConfigMatch[1],
|
|
125
|
-
});
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
console.error(`actorConfigChanged ${actorConfigChanged.actorName}: sanitizedActorName ${sanitizedActorName} ${lowercaseFilePath} `);
|
|
129
|
-
// These can be nested at various folders inside the actor folder
|
|
130
|
-
if (isLatest || !isLatestBuildOnlyFile(lowercaseFilePath)) {
|
|
131
|
-
// We assume other files will are either actor.json or input_schema.json and those needs to be tested
|
|
132
|
-
// TODO: Check what changed in schema, we don't need to test description changes
|
|
133
|
-
actorsChangedMap.set(actorConfigChanged.folder, actorConfigChanged);
|
|
134
|
-
}
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
// We check top level files (formerly in /code and /shared folders) that are shared among all non-standalone Actors
|
|
138
|
-
// Standalone actors are always handled separately by name via changedActorConfigMatch
|
|
139
|
-
if (isLatest || !isLatestBuildOnlyFile(lowercaseFilePath)) {
|
|
140
|
-
codeChanged = !isLatest; // NOTE: code is changed only in PR
|
|
141
|
-
for (const actorConfig of actorConfigsWithoutStandalone) {
|
|
142
|
-
actorsChangedMap.set(actorConfig.folder, actorConfig);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
const actorsChanged = Array.from(actorsChangedMap.values());
|
|
147
|
-
// All below here is just for logging
|
|
148
|
-
const ignoredFilesChanged = lowercaseFiles.filter((file) => isIgnoredTopLevelFile(file));
|
|
149
|
-
console.error(`[DIFF]: Top level files changed that we ignore (don't trigger test or build): ${ignoredFilesChanged.join(', ')}`);
|
|
150
|
-
const onlyLatestFilesChanged = lowercaseFiles.filter((file) => isLatestBuildOnlyFile(file));
|
|
151
|
-
console.error(`[DIFF]: Files changed that only trigger latest build: ${onlyLatestFilesChanged.join(', ')}`);
|
|
152
|
-
if (!isLatest && codeChanged) {
|
|
153
|
-
console.error(`[DIFF]: All non-standalone Actors need to be built and tested (changes in top-level code)`);
|
|
154
|
-
}
|
|
155
|
-
if (actorsChanged.length > 0) {
|
|
156
|
-
const miniactors = actorsChanged.filter((config) => !config.isStandalone).map((config) => config.actorName);
|
|
157
|
-
const standaloneActors = actorsChanged.filter((config) => config.isStandalone).map((config) => config.actorName);
|
|
158
|
-
console.error(`[DIFF]: MiniActors to be built and tested: ${miniactors.join(', ')}`);
|
|
159
|
-
console.error(`[DIFF]: Standalone Actors to be built and tested: ${standaloneActors.join(', ')}`);
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
console.error(`[DIFF]: No relevant files changed, skipping builds and tests`);
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
actorsChanged,
|
|
166
|
-
codeChanged,
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
82
|
//# sourceMappingURL=utils.js.map
|
package/dist/bin/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-changes.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { getChangedActors, maybeParseActorFolder } from '../../../bin/diff-changes.js';
|
|
3
|
+
import * as DiffJsonSchema from '../../../bin/diff-json-schema.js';
|
|
4
|
+
const miniActor = { actorName: 'foo/bar', folder: 'actors/foo_bar', isStandalone: false };
|
|
5
|
+
const standaloneActor = { actorName: 'standalone', folder: 'standalone-actors/standalone', isStandalone: true };
|
|
6
|
+
const actorConfigs = [miniActor, standaloneActor];
|
|
7
|
+
const commits = [{ sha: 'Commit1', author: '', date: '', message: '' }];
|
|
8
|
+
describe('maybeParseActorFolder', () => {
|
|
9
|
+
it('returns actorName for actors/ path', () => {
|
|
10
|
+
expect(maybeParseActorFolder('actors/foo_bar/actor.json')).toEqual({ isActorFolder: true, actorName: 'foo/bar' });
|
|
11
|
+
});
|
|
12
|
+
it('returns actorName for standalone-actors/ path', () => {
|
|
13
|
+
expect(maybeParseActorFolder('standalone-actors/my_actor/main.ts')).toEqual({ isActorFolder: true, actorName: 'my/actor' });
|
|
14
|
+
});
|
|
15
|
+
it('returns false for top-level file', () => {
|
|
16
|
+
expect(maybeParseActorFolder('package.json')).toEqual({ isActorFolder: false });
|
|
17
|
+
});
|
|
18
|
+
it('returns false for path with no file inside actor folder', () => {
|
|
19
|
+
expect(maybeParseActorFolder('actors/foo_bar')).toEqual({ isActorFolder: false });
|
|
20
|
+
});
|
|
21
|
+
it('returns false for unrelated folder', () => {
|
|
22
|
+
expect(maybeParseActorFolder('src/utils.ts')).toEqual({ isActorFolder: false });
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('getChangedActors', () => {
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockReturnValue(false);
|
|
28
|
+
});
|
|
29
|
+
it('returns empty array when no files changed', () => {
|
|
30
|
+
expect(getChangedActors({ filepathsChanged: [], actorConfigs, commits })).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
it('returns empty array when only ignored top-level files changed', () => {
|
|
33
|
+
const result = getChangedActors({
|
|
34
|
+
filepathsChanged: ['.gitignore', 'README.md', '.husky/pre-commit', '.vscode/settings.json'],
|
|
35
|
+
actorConfigs,
|
|
36
|
+
commits,
|
|
37
|
+
});
|
|
38
|
+
expect(result).toEqual([]);
|
|
39
|
+
});
|
|
40
|
+
it('returns the actor when a functional file in its folder changes', () => {
|
|
41
|
+
const result = getChangedActors({
|
|
42
|
+
filepathsChanged: ['actors/foo_bar/src/main.ts'],
|
|
43
|
+
actorConfigs,
|
|
44
|
+
commits,
|
|
45
|
+
});
|
|
46
|
+
expect(result).toEqual([miniActor]);
|
|
47
|
+
});
|
|
48
|
+
it('returns actor when isLatest and README in actor folder changed (cosmetic)', () => {
|
|
49
|
+
const result = getChangedActors({
|
|
50
|
+
filepathsChanged: ['actors/foo_bar/README.md'],
|
|
51
|
+
actorConfigs,
|
|
52
|
+
commits,
|
|
53
|
+
isLatest: true,
|
|
54
|
+
});
|
|
55
|
+
expect(result).toEqual([miniActor]);
|
|
56
|
+
});
|
|
57
|
+
it('does not return actor when not isLatest and only README changed (cosmetic)', () => {
|
|
58
|
+
const result = getChangedActors({
|
|
59
|
+
filepathsChanged: ['actors/foo_bar/README.md'],
|
|
60
|
+
actorConfigs,
|
|
61
|
+
commits,
|
|
62
|
+
isLatest: false,
|
|
63
|
+
});
|
|
64
|
+
expect(result).toEqual([]);
|
|
65
|
+
});
|
|
66
|
+
it('returns actor when isLatest and JSON file has only cosmetic changes', () => {
|
|
67
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockReturnValue(true);
|
|
68
|
+
const result = getChangedActors({
|
|
69
|
+
filepathsChanged: ['actors/foo_bar/actor.json'],
|
|
70
|
+
actorConfigs,
|
|
71
|
+
commits,
|
|
72
|
+
isLatest: true,
|
|
73
|
+
});
|
|
74
|
+
expect(result).toEqual([miniActor]);
|
|
75
|
+
});
|
|
76
|
+
it('does not return actor when not isLatest and JSON file has only cosmetic changes', () => {
|
|
77
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockReturnValue(true);
|
|
78
|
+
const result = getChangedActors({
|
|
79
|
+
filepathsChanged: ['actors/foo_bar/actor.json'],
|
|
80
|
+
actorConfigs,
|
|
81
|
+
commits,
|
|
82
|
+
isLatest: false,
|
|
83
|
+
});
|
|
84
|
+
expect(result).toEqual([]);
|
|
85
|
+
});
|
|
86
|
+
it('returns actor when JSON file has functional changes', () => {
|
|
87
|
+
vi.spyOn(DiffJsonSchema, 'isCosmeticOnlyJsonSchemaChange').mockReturnValue(false);
|
|
88
|
+
const result = getChangedActors({
|
|
89
|
+
filepathsChanged: ['actors/foo_bar/actor.json'],
|
|
90
|
+
actorConfigs,
|
|
91
|
+
commits,
|
|
92
|
+
});
|
|
93
|
+
expect(result).toEqual([miniActor]);
|
|
94
|
+
});
|
|
95
|
+
it('returns all non-standalone actors when a non-actor-folder functional file changes', () => {
|
|
96
|
+
const result = getChangedActors({
|
|
97
|
+
filepathsChanged: ['shared/utils.ts'],
|
|
98
|
+
actorConfigs,
|
|
99
|
+
commits,
|
|
100
|
+
});
|
|
101
|
+
expect(result).toContainEqual(miniActor);
|
|
102
|
+
expect(result).not.toContainEqual(standaloneActor);
|
|
103
|
+
});
|
|
104
|
+
it('does not include standalone actor in all-actors expansion from changelog', () => {
|
|
105
|
+
const result = getChangedActors({
|
|
106
|
+
filepathsChanged: ['CHANGELOG.md'],
|
|
107
|
+
actorConfigs,
|
|
108
|
+
commits,
|
|
109
|
+
isLatest: true,
|
|
110
|
+
});
|
|
111
|
+
expect(result).toContainEqual(miniActor);
|
|
112
|
+
expect(result).not.toContainEqual(standaloneActor);
|
|
113
|
+
});
|
|
114
|
+
it('includes standalone actor when its own folder changes', () => {
|
|
115
|
+
const result = getChangedActors({
|
|
116
|
+
filepathsChanged: ['standalone-actors/standalone/src/main.ts'],
|
|
117
|
+
actorConfigs,
|
|
118
|
+
commits,
|
|
119
|
+
});
|
|
120
|
+
expect(result).toContainEqual(standaloneActor);
|
|
121
|
+
});
|
|
122
|
+
it('deduplicates actors when multiple files in same actor folder change', () => {
|
|
123
|
+
const result = getChangedActors({
|
|
124
|
+
filepathsChanged: ['actors/foo_bar/src/main.ts', 'actors/foo_bar/package.json'],
|
|
125
|
+
actorConfigs,
|
|
126
|
+
commits,
|
|
127
|
+
});
|
|
128
|
+
expect(result).toHaveLength(1);
|
|
129
|
+
expect(result).toContainEqual(miniActor);
|
|
130
|
+
});
|
|
131
|
+
it('handles mixed changes: returns both mini and standalone actors', () => {
|
|
132
|
+
const result = getChangedActors({
|
|
133
|
+
filepathsChanged: [
|
|
134
|
+
'actors/foo_bar/src/main.ts',
|
|
135
|
+
'standalone-actors/standalone/Dockerfile',
|
|
136
|
+
],
|
|
137
|
+
actorConfigs,
|
|
138
|
+
commits,
|
|
139
|
+
});
|
|
140
|
+
expect(result).toContainEqual(miniActor);
|
|
141
|
+
expect(result).toContainEqual(standaloneActor);
|
|
142
|
+
});
|
|
143
|
+
it('file paths are matched case-insensitively', () => {
|
|
144
|
+
const result = getChangedActors({
|
|
145
|
+
filepathsChanged: ['Actors/FOO_BAR/Main.ts'],
|
|
146
|
+
actorConfigs,
|
|
147
|
+
commits,
|
|
148
|
+
});
|
|
149
|
+
expect(result).toEqual([miniActor]);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=diff-changes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-changes.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff-changes.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/bin/diff.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, test, vi } from 'vitest';
|
|
2
|
+
import { isCosmeticOnlyJsonSchemaChange } from '../../../bin/diff-json-schema.js';
|
|
3
|
+
import * as Utils from '../../../bin/utils.js';
|
|
4
|
+
const commits = [
|
|
5
|
+
{ sha: 'Commit1', author: '', date: '', message: '' },
|
|
6
|
+
{ sha: 'Commit3', author: '', date: '', message: '' },
|
|
7
|
+
];
|
|
8
|
+
describe('isCosmeticOnlyJsonSchemaChange', () => {
|
|
9
|
+
let gitCommandSpy;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
gitCommandSpy = vi.spyOn(Utils, 'spawnCommandInGhWorkspace');
|
|
12
|
+
});
|
|
13
|
+
const mockGitCalls = (oldJson, newJson) => {
|
|
14
|
+
gitCommandSpy
|
|
15
|
+
.mockReturnValueOnce(oldJson)
|
|
16
|
+
.mockReturnValueOnce(newJson);
|
|
17
|
+
};
|
|
18
|
+
test('returns true when nothing changed', () => {
|
|
19
|
+
const json = JSON.stringify({ type: 'string', title: 'My field' });
|
|
20
|
+
mockGitCalls(json, json);
|
|
21
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
test('returns true when only title changes', () => {
|
|
24
|
+
mockGitCalls(JSON.stringify({ type: 'string', title: 'Old title' }), JSON.stringify({ type: 'string', title: 'New title' }));
|
|
25
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
26
|
+
});
|
|
27
|
+
test('returns true when only description changes', () => {
|
|
28
|
+
mockGitCalls(JSON.stringify({ type: 'string', description: 'Old desc' }), JSON.stringify({ type: 'string', description: 'New desc' }));
|
|
29
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
30
|
+
});
|
|
31
|
+
test('returns true when only example changes', () => {
|
|
32
|
+
mockGitCalls(JSON.stringify({ type: 'string', example: 'foo' }), JSON.stringify({ type: 'string', example: 'bar' }));
|
|
33
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
test('returns true when only enumTitles changes', () => {
|
|
36
|
+
mockGitCalls(JSON.stringify({ type: 'string', enum: ['a', 'b'], enumTitles: ['Option A', 'Option B'] }), JSON.stringify({ type: 'string', enum: ['a', 'b'], enumTitles: ['Choice A', 'Choice B'] }));
|
|
37
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
test('returns true when only sectionCaption changes', () => {
|
|
40
|
+
mockGitCalls(JSON.stringify({ sectionCaption: 'Old caption' }), JSON.stringify({ sectionCaption: 'New caption' }));
|
|
41
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
test('returns true when only sectionDescription changes', () => {
|
|
44
|
+
mockGitCalls(JSON.stringify({ sectionDescription: 'Old' }), JSON.stringify({ sectionDescription: 'New' }));
|
|
45
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
test('returns false when a functional field (type) changes', () => {
|
|
48
|
+
mockGitCalls(JSON.stringify({ type: 'string', title: 'My field' }), JSON.stringify({ type: 'integer', title: 'My field' }));
|
|
49
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
test('returns false when a functional field is added', () => {
|
|
52
|
+
mockGitCalls(JSON.stringify({ title: 'My field' }), JSON.stringify({ title: 'My field', type: 'string' }));
|
|
53
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
54
|
+
});
|
|
55
|
+
test('returns false when a functional field is removed', () => {
|
|
56
|
+
mockGitCalls(JSON.stringify({ type: 'string', title: 'My field' }), JSON.stringify({ title: 'My field' }));
|
|
57
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
test('returns true when non-functional fields change at nested level (input schema properties)', () => {
|
|
60
|
+
mockGitCalls(JSON.stringify({
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
myField: { type: 'string', title: 'Old title', description: 'Old desc', example: 'old' },
|
|
64
|
+
},
|
|
65
|
+
}), JSON.stringify({
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {
|
|
68
|
+
myField: { type: 'string', title: 'New title', description: 'New desc', example: 'new' },
|
|
69
|
+
},
|
|
70
|
+
}));
|
|
71
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
test('returns false when a functional nested field changes alongside non-functional ones', () => {
|
|
74
|
+
mockGitCalls(JSON.stringify({
|
|
75
|
+
type: 'object',
|
|
76
|
+
properties: { myField: { type: 'string', title: 'Old title' } },
|
|
77
|
+
}), JSON.stringify({
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: { myField: { type: 'integer', title: 'New title' } },
|
|
80
|
+
}));
|
|
81
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
82
|
+
});
|
|
83
|
+
test('returns false when a new property is added to input schema', () => {
|
|
84
|
+
mockGitCalls(JSON.stringify({ properties: { fieldA: { type: 'string' } } }), JSON.stringify({ properties: { fieldA: { type: 'string' }, fieldB: { type: 'integer' } } }));
|
|
85
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
86
|
+
});
|
|
87
|
+
test('returns false when a property is removed from input schema', () => {
|
|
88
|
+
mockGitCalls(JSON.stringify({ properties: { fieldA: { type: 'string' }, fieldB: { type: 'integer' } } }), JSON.stringify({ properties: { fieldA: { type: 'string' } } }));
|
|
89
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
90
|
+
});
|
|
91
|
+
test('returns false when invalid JSON in old content', () => {
|
|
92
|
+
mockGitCalls('not json', '{}');
|
|
93
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
94
|
+
});
|
|
95
|
+
test('returns false when invalid JSON in new content', () => {
|
|
96
|
+
mockGitCalls('{}', 'not json');
|
|
97
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
98
|
+
});
|
|
99
|
+
test('returns false when array content changes (not under a non-functional key)', () => {
|
|
100
|
+
mockGitCalls(JSON.stringify({ enum: [1, 2, 3] }), JSON.stringify({ enum: [1, 2, 4] }));
|
|
101
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
102
|
+
});
|
|
103
|
+
test('returns true when example array changes (non-functional key)', () => {
|
|
104
|
+
mockGitCalls(JSON.stringify({ type: 'array', example: [1, 2, 3] }), JSON.stringify({ type: 'array', example: [4, 5, 6] }));
|
|
105
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
106
|
+
});
|
|
107
|
+
test('returns true for a realistic actor.json with only title/description change', () => {
|
|
108
|
+
mockGitCalls(JSON.stringify({ actorSpecification: 1, name: 'my-actor', title: 'Old Title', description: 'Old description', version: '1.0' }), JSON.stringify({ actorSpecification: 1, name: 'my-actor', title: 'New Title', description: 'New description', version: '1.0' }));
|
|
109
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
110
|
+
});
|
|
111
|
+
test('returns true when fields under properties are reordered', () => {
|
|
112
|
+
mockGitCalls(JSON.stringify({
|
|
113
|
+
type: 'object',
|
|
114
|
+
properties: { fieldA: { type: 'string' }, fieldB: { type: 'integer' }, fieldC: { type: 'boolean' } },
|
|
115
|
+
}), JSON.stringify({
|
|
116
|
+
type: 'object',
|
|
117
|
+
properties: { fieldC: { type: 'boolean' }, fieldA: { type: 'string' }, fieldB: { type: 'integer' } },
|
|
118
|
+
}));
|
|
119
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
test('returns false for a realistic actor.json with version change', () => {
|
|
122
|
+
mockGitCalls(JSON.stringify({ actorSpecification: 1, name: 'my-actor', title: 'My Actor', version: '1.0' }), JSON.stringify({ actorSpecification: 1, name: 'my-actor', title: 'My Actor', version: '1.1' }));
|
|
123
|
+
expect(isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json')).toBe(false);
|
|
124
|
+
});
|
|
125
|
+
it('uses correct git refs: first-commit parent for old, last commit for new', () => {
|
|
126
|
+
const json = JSON.stringify({});
|
|
127
|
+
mockGitCalls(json, json);
|
|
128
|
+
isCosmeticOnlyJsonSchemaChange(commits, 'actors/foo/actor.json');
|
|
129
|
+
expect(gitCommandSpy).toHaveBeenCalledWith('git show Commit1~:actors/foo/actor.json');
|
|
130
|
+
expect(gitCommandSpy).toHaveBeenCalledWith('git show Commit3:actors/foo/actor.json');
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=diff.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.test.js","sourceRoot":"","sources":["../../../../test/unit/bin/diff.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-commit.test.js","sourceRoot":"","sources":["../../../test/unit/parse-commit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"parse-commit.test.js","sourceRoot":"","sources":["../../../test/unit/parse-commit.test.ts"],"names":[],"mappings":"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"}
|