Files
stack/packages/bus/tests/shared-repo-control.test.mjs

17 lines
1.1 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { requestFixture } from './request-fixture.mjs';
test('any archived chat binding fences a shared repository until all are unarchived',async t=>{
const f=await requestFixture(t);
const a=f.call('human','project.create',{name:'Factory one',repo:'stack'}).id;
const b=f.call('human','project.create',{name:'Factory two',repo:'stack'}).id;
const ready=()=>f.bus.admission({business:'demo',project:'stack'});
assert.equal(ready().ready,true);
f.call('human','project.archive',{project:a});assert.equal(ready().code,'project-archived');
assert.equal(f.bus.admission({business:'demo',project:'timer'}).ready,true);
f.call('human','project.archive',{project:b});
f.call('human','project.unarchive',{project:a});assert.equal(ready().code,'project-archived');
f.call('human','project.unarchive',{project:b});assert.equal(ready().ready,true);
console.log('SHARED_REPO_CONTROL',JSON.stringify({oneArchived:'project-archived',oneStillArchived:'project-archived',allLive:ready(),unrelated:f.bus.admission({business:'demo',project:'timer'})}));
});