Harden workspace sync quarantine and updater recovery
Managed validation / full (pull_request) Successful in 31s
Managed validation / full (pull_request) Successful in 31s
This commit is contained in:
@@ -295,6 +295,16 @@ test('previews and safely mirrors a workspace to Gitea while preserving every cl
|
||||
assert.equal(result.status.head, reviewedPlan.targetSha);
|
||||
assert.match(result.backupBranch, /^forgeflow\/recovery-main-/);
|
||||
assert.ok(result.stash?.sha);
|
||||
assert.equal(result.stash.quarantined, true);
|
||||
assert.equal(result.review.id, reviewedPlan.id);
|
||||
assert.equal(result.review.status, 'pending-codex-review');
|
||||
const reviewManifest = JSON.parse(await fs.readFile(result.review.manifestPath, 'utf8'));
|
||||
assert.equal(reviewManifest.recoveryBranch, result.backupBranch);
|
||||
assert.equal(reviewManifest.stashSha, result.stash.sha);
|
||||
assert.deepEqual(
|
||||
new Set(reviewManifest.files.map((file) => file.path)),
|
||||
new Set(['README.md', 'local-notes.txt', 'changed-after-preview.txt'])
|
||||
);
|
||||
assert.equal((await git(['rev-parse', result.backupBranch], working)).stdout.trim(), localHead);
|
||||
assert.equal((await fs.readFile(path.join(working, 'README.md'), 'utf8')).replace(/\r\n/g, '\n'), 'changed on Gitea\n');
|
||||
assert.equal((await fs.readFile(path.join(working, 'remote-only.txt'), 'utf8')).replace(/\r\n/g, '\n'), 'new on Gitea\n');
|
||||
@@ -306,6 +316,15 @@ test('previews and safely mirrors a workspace to Gitea while preserving every cl
|
||||
assert.match(stashedPaths, /README\.md/);
|
||||
assert.match(stashedPaths, /local-notes\.txt/);
|
||||
assert.match(stashedPaths, /changed-after-preview\.txt/);
|
||||
await assert.rejects(
|
||||
service.popStash(working, result.stash.ref),
|
||||
(error) => error.code === 'WORKSPACE_QUARANTINE_REVIEW_REQUIRED'
|
||||
);
|
||||
await git(['switch', result.backupBranch], working);
|
||||
await assert.rejects(
|
||||
service.push(working),
|
||||
(error) => error.code === 'WORKSPACE_RECOVERY_BRANCH_LOCAL_ONLY'
|
||||
);
|
||||
});
|
||||
|
||||
test('repairs a diverged branch by creating a safety branch before resetting to upstream', async (t) => {
|
||||
|
||||
Reference in New Issue
Block a user