1
+ import { promises as fs } from 'fs' ;
1
2
import { getOctokit } from "@actions/github" ;
2
3
4
+
3
5
import { ENV , REPO , ROOT_TEST_BRANCH_PREFIX , log } from "./env.js" ;
4
6
import { commitFilesFromBuffers } from "../../node.js" ;
5
7
import { deleteBranches } from "./util.js" ;
@@ -8,18 +10,23 @@ import {
8
10
getRefTreeQuery ,
9
11
getRepositoryMetadata ,
10
12
} from "../../github/graphql/queries.js" ;
13
+ import git from 'isomorphic-git' ;
14
+
15
+ // TODO: re-enable strict tree tests when GitHub have addressed the createRef
16
+ // bug that's currently used in integration tests
17
+ // See: https://github.com/orgs/community/discussions/136777
11
18
12
19
const octokit = getOctokit ( ENV . GITHUB_TOKEN ) ;
13
20
14
21
const TEST_BRANCH_PREFIX = `${ ROOT_TEST_BRANCH_PREFIX } -node` ;
15
22
16
- const TEST_TARGET_COMMIT = "fce2760017eab6d85388ed5cfdfac171559d80b3" ;
23
+ // const TEST_TARGET_COMMIT = "fce2760017eab6d85388ed5cfdfac171559d80b3";
17
24
/**
18
25
* For tests, important that this commit is not an ancestor of TEST_TARGET_COMMIT,
19
26
* to ensure that non-fast-forward pushes are tested
20
27
*/
21
- const TEST_TARGET_COMMIT_2 = "7ba8473f02849de3b5449b25fc83c5245d338d94" ;
22
- const TEST_TARGET_TREE_2 = "95c9ea756f3686614dcdc1c42f7f654b684cdac2" ;
28
+ // const TEST_TARGET_COMMIT_2 = "7ba8473f02849de3b5449b25fc83c5245d338d94";
29
+ // const TEST_TARGET_TREE_2 = "95c9ea756f3686614dcdc1c42f7f654b684cdac2";
23
30
24
31
const BASIC_FILE_CHANGES_PATH = "foo.txt" ;
25
32
const BASIC_FILE_CHANGES_OID = "0e23339619d605319ec4b49a0ac9dd94598eff8e" ;
@@ -39,8 +46,8 @@ const BASIC_FILE_CONTENTS = {
39
46
log,
40
47
} ;
41
48
42
- const TEST_TARGET_TREE_WITH_BASIC_CHANGES =
43
- "a3431c9b42b71115c52bc6fbf9da3682cf0ed5e8" ;
49
+ // const TEST_TARGET_TREE_WITH_BASIC_CHANGES =
50
+ // "a3431c9b42b71115c52bc6fbf9da3682cf0ed5e8";
44
51
45
52
describe ( "node" , ( ) => {
46
53
const branches : string [ ] = [ ] ;
@@ -87,6 +94,14 @@ describe("node", () => {
87
94
}
88
95
} ;
89
96
97
+ let testTargetCommit : string ;
98
+ /**
99
+ * For tests, important that this commit is not an ancestor of TEST_TARGET_COMMIT,
100
+ * to ensure that non-fast-forward pushes are tested
101
+ */
102
+ let testTargetCommit2 : string ;
103
+ let testTargetTree2 : string ;
104
+
90
105
beforeAll ( async ( ) => {
91
106
const response = await getRepositoryMetadata ( octokit , {
92
107
owner : REPO . owner ,
@@ -98,6 +113,12 @@ describe("node", () => {
98
113
throw new Error ( "Repository not found" ) ;
99
114
}
100
115
repositoryId = response . id ;
116
+
117
+ // Get recent 2 commits to perform tests on
118
+ const log = await git . log ( { fs, dir : process . cwd ( ) , depth : 2 } ) ;
119
+ testTargetCommit = log [ 1 ] ?. oid ?? "N/A" ;
120
+ testTargetCommit2 = log [ 0 ] ?. oid ?? "N/A" ;
121
+ testTargetTree2 = log [ 0 ] ?. commit . tree ?? 'N/A' ;
101
122
} ) ;
102
123
103
124
describe ( "commitFilesFromBuffers" , ( ) => {
@@ -120,8 +141,8 @@ describe("node", () => {
120
141
} ,
121
142
} ;
122
143
123
- for ( const [ sizeName , { sizeBytes, treeOid , fileOid } ] of Object . entries (
124
- SIZES_BYTES ,
144
+ for ( const [ sizeName , { sizeBytes, fileOid } ] of Object . entries (
145
+ SIZES_BYTES
125
146
) ) {
126
147
it ( `Can commit a ${ sizeName } ` , async ( ) => {
127
148
const branch = `${ TEST_BRANCH_PREFIX } -${ sizeName } ` ;
@@ -133,7 +154,7 @@ describe("node", () => {
133
154
...REPO ,
134
155
branch,
135
156
base : {
136
- commit : TEST_TARGET_COMMIT ,
157
+ commit : testTargetCommit ,
137
158
} ,
138
159
message : {
139
160
headline : "Test commit" ,
@@ -152,7 +173,8 @@ describe("node", () => {
152
173
153
174
await expectBranchHasTree ( {
154
175
branch,
155
- treeOid,
176
+ // TODO: re-enable
177
+ // treeOid,
156
178
file : {
157
179
path : `${ sizeName } .txt` ,
158
180
oid : fileOid ,
@@ -219,14 +241,15 @@ describe("node", () => {
219
241
...REPO ,
220
242
branch,
221
243
base : {
222
- commit : TEST_TARGET_COMMIT ,
244
+ commit : testTargetCommit ,
223
245
} ,
224
246
...BASIC_FILE_CONTENTS ,
225
247
} ) ;
226
248
227
249
await expectBranchHasTree ( {
228
250
branch,
229
- treeOid : TEST_TARGET_TREE_WITH_BASIC_CHANGES ,
251
+ // TODO: re-enable
252
+ // treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
230
253
file : {
231
254
path : BASIC_FILE_CHANGES_PATH ,
232
255
oid : BASIC_FILE_CHANGES_OID ,
@@ -244,7 +267,7 @@ describe("node", () => {
244
267
input : {
245
268
repositoryId,
246
269
name : `refs/heads/${ branch } ` ,
247
- oid : TEST_TARGET_COMMIT_2 ,
270
+ oid : testTargetCommit2 ,
248
271
} ,
249
272
} ) ;
250
273
@@ -253,15 +276,16 @@ describe("node", () => {
253
276
...REPO ,
254
277
branch,
255
278
base : {
256
- commit : TEST_TARGET_COMMIT ,
279
+ commit : testTargetCommit ,
257
280
} ,
258
281
...BASIC_FILE_CONTENTS ,
259
282
force : true ,
260
283
} ) ;
261
284
262
285
await expectBranchHasTree ( {
263
286
branch,
264
- treeOid : TEST_TARGET_TREE_WITH_BASIC_CHANGES ,
287
+ // TODO: re-enable
288
+ // treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
265
289
file : {
266
290
path : BASIC_FILE_CHANGES_PATH ,
267
291
oid : BASIC_FILE_CHANGES_OID ,
@@ -278,7 +302,7 @@ describe("node", () => {
278
302
input : {
279
303
repositoryId,
280
304
name : `refs/heads/${ branch } ` ,
281
- oid : TEST_TARGET_COMMIT_2 ,
305
+ oid : testTargetCommit2 ,
282
306
} ,
283
307
} ) ;
284
308
@@ -288,17 +312,17 @@ describe("node", () => {
288
312
...REPO ,
289
313
branch,
290
314
base : {
291
- commit : TEST_TARGET_COMMIT ,
315
+ commit : testTargetCommit ,
292
316
} ,
293
317
...BASIC_FILE_CONTENTS ,
294
- } ) ,
318
+ } )
295
319
) . rejects . toThrow (
296
- `Branch ${ branch } exists already and does not match base` ,
320
+ `Branch ${ branch } exists already and does not match base`
297
321
) ;
298
322
299
323
await expectBranchHasTree ( {
300
324
branch,
301
- treeOid : TEST_TARGET_TREE_2 ,
325
+ treeOid : testTargetTree2 ,
302
326
} ) ;
303
327
} ) ;
304
328
@@ -311,7 +335,7 @@ describe("node", () => {
311
335
input : {
312
336
repositoryId,
313
337
name : `refs/heads/${ branch } ` ,
314
- oid : TEST_TARGET_COMMIT ,
338
+ oid : testTargetCommit ,
315
339
} ,
316
340
} ) ;
317
341
@@ -320,14 +344,15 @@ describe("node", () => {
320
344
...REPO ,
321
345
branch,
322
346
base : {
323
- commit : TEST_TARGET_COMMIT ,
347
+ commit : testTargetCommit ,
324
348
} ,
325
349
...BASIC_FILE_CONTENTS ,
326
350
} ) ;
327
351
328
352
await expectBranchHasTree ( {
329
353
branch,
330
- treeOid : TEST_TARGET_TREE_WITH_BASIC_CHANGES ,
354
+ // TODO: re-enable
355
+ // treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
331
356
file : {
332
357
path : BASIC_FILE_CHANGES_PATH ,
333
358
oid : BASIC_FILE_CHANGES_OID ,
@@ -344,7 +369,7 @@ describe("node", () => {
344
369
input : {
345
370
repositoryId,
346
371
name : `refs/heads/${ branch } ` ,
347
- oid : TEST_TARGET_COMMIT ,
372
+ oid : testTargetCommit ,
348
373
} ,
349
374
} ) ;
350
375
@@ -360,7 +385,8 @@ describe("node", () => {
360
385
361
386
await expectBranchHasTree ( {
362
387
branch,
363
- treeOid : TEST_TARGET_TREE_WITH_BASIC_CHANGES ,
388
+ // TODO: re-enable
389
+ // treeOid: TEST_TARGET_TREE_WITH_BASIC_CHANGES,
364
390
file : {
365
391
path : BASIC_FILE_CHANGES_PATH ,
366
392
oid : BASIC_FILE_CHANGES_OID ,
0 commit comments