Skip to content

Commit 6529a43

Browse files
authored
Avoid testing hard-coded trees due to GH Bug (#19)
See: https://github.com/orgs/community/discussions/136777 createRef cannot be reliably used for older commits, so hard-coding expected commits and trees is not reliable for tests. Avoid testing tree hashes and use most recent commits for now.
1 parent 52ea7a7 commit 6529a43

File tree

1 file changed

+46
-21
lines changed

1 file changed

+46
-21
lines changed

src/test/integration/node.test.ts

+46-21
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { promises as fs } from "fs";
12
import { getOctokit } from "@actions/github";
23

34
import { ENV, REPO, ROOT_TEST_BRANCH_PREFIX, log } from "./env.js";
@@ -8,18 +9,23 @@ import {
89
getRefTreeQuery,
910
getRepositoryMetadata,
1011
} from "../../github/graphql/queries.js";
12+
import git from "isomorphic-git";
13+
14+
// TODO: re-enable strict tree tests when GitHub have addressed the createRef
15+
// bug that's currently used in integration tests
16+
// See: https://github.com/orgs/community/discussions/136777
1117

1218
const octokit = getOctokit(ENV.GITHUB_TOKEN);
1319

1420
const TEST_BRANCH_PREFIX = `${ROOT_TEST_BRANCH_PREFIX}-node`;
1521

16-
const TEST_TARGET_COMMIT = "fce2760017eab6d85388ed5cfdfac171559d80b3";
22+
// const TEST_TARGET_COMMIT = "fce2760017eab6d85388ed5cfdfac171559d80b3";
1723
/**
1824
* For tests, important that this commit is not an ancestor of TEST_TARGET_COMMIT,
1925
* to ensure that non-fast-forward pushes are tested
2026
*/
21-
const TEST_TARGET_COMMIT_2 = "7ba8473f02849de3b5449b25fc83c5245d338d94";
22-
const TEST_TARGET_TREE_2 = "95c9ea756f3686614dcdc1c42f7f654b684cdac2";
27+
// const TEST_TARGET_COMMIT_2 = "7ba8473f02849de3b5449b25fc83c5245d338d94";
28+
// const TEST_TARGET_TREE_2 = "95c9ea756f3686614dcdc1c42f7f654b684cdac2";
2329

2430
const BASIC_FILE_CHANGES_PATH = "foo.txt";
2531
const BASIC_FILE_CHANGES_OID = "0e23339619d605319ec4b49a0ac9dd94598eff8e";
@@ -39,8 +45,8 @@ const BASIC_FILE_CONTENTS = {
3945
log,
4046
};
4147

42-
const TEST_TARGET_TREE_WITH_BASIC_CHANGES =
43-
"a3431c9b42b71115c52bc6fbf9da3682cf0ed5e8";
48+
// const TEST_TARGET_TREE_WITH_BASIC_CHANGES =
49+
// "a3431c9b42b71115c52bc6fbf9da3682cf0ed5e8";
4450

4551
describe("node", () => {
4652
const branches: string[] = [];
@@ -87,6 +93,14 @@ describe("node", () => {
8793
}
8894
};
8995

96+
let testTargetCommit: string;
97+
/**
98+
* For tests, important that this commit is not an ancestor of TEST_TARGET_COMMIT,
99+
* to ensure that non-fast-forward pushes are tested
100+
*/
101+
let testTargetCommit2: string;
102+
let testTargetTree2: string;
103+
90104
beforeAll(async () => {
91105
const response = await getRepositoryMetadata(octokit, {
92106
owner: REPO.owner,
@@ -98,6 +112,12 @@ describe("node", () => {
98112
throw new Error("Repository not found");
99113
}
100114
repositoryId = response.id;
115+
116+
// Get recent 2 commits to perform tests on
117+
const log = await git.log({ fs, dir: process.cwd(), depth: 2 });
118+
testTargetCommit = log[1]?.oid ?? "N/A";
119+
testTargetCommit2 = log[0]?.oid ?? "N/A";
120+
testTargetTree2 = log[0]?.commit.tree ?? "N/A";
101121
});
102122

103123
describe("commitFilesFromBuffers", () => {
@@ -120,7 +140,7 @@ describe("node", () => {
120140
},
121141
};
122142

123-
for (const [sizeName, { sizeBytes, treeOid, fileOid }] of Object.entries(
143+
for (const [sizeName, { sizeBytes, fileOid }] of Object.entries(
124144
SIZES_BYTES,
125145
)) {
126146
it(`Can commit a ${sizeName}`, async () => {
@@ -133,7 +153,7 @@ describe("node", () => {
133153
...REPO,
134154
branch,
135155
base: {
136-
commit: TEST_TARGET_COMMIT,
156+
commit: testTargetCommit,
137157
},
138158
message: {
139159
headline: "Test commit",
@@ -152,7 +172,8 @@ describe("node", () => {
152172

153173
await expectBranchHasTree({
154174
branch,
155-
treeOid,
175+
// TODO: re-enable
176+
// treeOid,
156177
file: {
157178
path: `${sizeName}.txt`,
158179
oid: fileOid,
@@ -219,14 +240,15 @@ describe("node", () => {
219240
...REPO,
220241
branch,
221242
base: {
222-
commit: TEST_TARGET_COMMIT,
243+
commit: testTargetCommit,
223244
},
224245
...BASIC_FILE_CONTENTS,
225246
});
226247

227248
await expectBranchHasTree({
228249
branch,
229-
treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
250+
// TODO: re-enable
251+
// treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
230252
file: {
231253
path: BASIC_FILE_CHANGES_PATH,
232254
oid: BASIC_FILE_CHANGES_OID,
@@ -244,7 +266,7 @@ describe("node", () => {
244266
input: {
245267
repositoryId,
246268
name: `refs/heads/${branch}`,
247-
oid: TEST_TARGET_COMMIT_2,
269+
oid: testTargetCommit2,
248270
},
249271
});
250272

@@ -253,15 +275,16 @@ describe("node", () => {
253275
...REPO,
254276
branch,
255277
base: {
256-
commit: TEST_TARGET_COMMIT,
278+
commit: testTargetCommit,
257279
},
258280
...BASIC_FILE_CONTENTS,
259281
force: true,
260282
});
261283

262284
await expectBranchHasTree({
263285
branch,
264-
treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
286+
// TODO: re-enable
287+
// treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
265288
file: {
266289
path: BASIC_FILE_CHANGES_PATH,
267290
oid: BASIC_FILE_CHANGES_OID,
@@ -278,7 +301,7 @@ describe("node", () => {
278301
input: {
279302
repositoryId,
280303
name: `refs/heads/${branch}`,
281-
oid: TEST_TARGET_COMMIT_2,
304+
oid: testTargetCommit2,
282305
},
283306
});
284307

@@ -288,7 +311,7 @@ describe("node", () => {
288311
...REPO,
289312
branch,
290313
base: {
291-
commit: TEST_TARGET_COMMIT,
314+
commit: testTargetCommit,
292315
},
293316
...BASIC_FILE_CONTENTS,
294317
}),
@@ -298,7 +321,7 @@ describe("node", () => {
298321

299322
await expectBranchHasTree({
300323
branch,
301-
treeOid: TEST_TARGET_TREE_2,
324+
treeOid: testTargetTree2,
302325
});
303326
});
304327

@@ -311,7 +334,7 @@ describe("node", () => {
311334
input: {
312335
repositoryId,
313336
name: `refs/heads/${branch}`,
314-
oid: TEST_TARGET_COMMIT,
337+
oid: testTargetCommit,
315338
},
316339
});
317340

@@ -320,14 +343,15 @@ describe("node", () => {
320343
...REPO,
321344
branch,
322345
base: {
323-
commit: TEST_TARGET_COMMIT,
346+
commit: testTargetCommit,
324347
},
325348
...BASIC_FILE_CONTENTS,
326349
});
327350

328351
await expectBranchHasTree({
329352
branch,
330-
treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
353+
// TODO: re-enable
354+
// treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
331355
file: {
332356
path: BASIC_FILE_CHANGES_PATH,
333357
oid: BASIC_FILE_CHANGES_OID,
@@ -344,7 +368,7 @@ describe("node", () => {
344368
input: {
345369
repositoryId,
346370
name: `refs/heads/${branch}`,
347-
oid: TEST_TARGET_COMMIT,
371+
oid: testTargetCommit,
348372
},
349373
});
350374

@@ -360,7 +384,8 @@ describe("node", () => {
360384

361385
await expectBranchHasTree({
362386
branch,
363-
treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
387+
// TODO: re-enable
388+
// treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
364389
file: {
365390
path: BASIC_FILE_CHANGES_PATH,
366391
oid: BASIC_FILE_CHANGES_OID,

0 commit comments

Comments
 (0)