fix(release): stream large migration checksums from git
This commit is contained in:
@@ -58,6 +58,26 @@ test('failed build never creates a draft or changes release channels', async ()
|
||||
assert.deepEqual(f.events, []);
|
||||
});
|
||||
|
||||
test('asynchronous manifest generation finishes before creating the release draft', async () => {
|
||||
const f = fixture();
|
||||
f.dependencies.manifestFactory = async () => {
|
||||
await new Promise(resolve => setImmediate(resolve));
|
||||
f.events.push('manifest');
|
||||
return f.manifest;
|
||||
};
|
||||
await publishRelease(f.dependencies);
|
||||
assert.deepEqual(f.events.slice(0, 3), ['build', 'manifest', 'draft']);
|
||||
assert.equal(f.getRelease().draft, false);
|
||||
});
|
||||
|
||||
test('failed migration hashing never creates a draft or promotes images', async () => {
|
||||
const f = fixture();
|
||||
f.dependencies.manifestFactory = async () => { throw new Error('migration hashing failed'); };
|
||||
await assert.rejects(publishRelease(f.dependencies), /migration hashing failed/);
|
||||
assert.deepEqual(f.events, ['build']);
|
||||
assert.equal(f.getRelease(), null);
|
||||
});
|
||||
|
||||
test('retry a draft uses saved digests and original notes without rebuilding', async () => {
|
||||
const f = fixture();
|
||||
f.dependencies.promote = async () => { throw new Error('registry interrupted'); };
|
||||
|
||||
Reference in New Issue
Block a user