17 lines
1.1 KiB
JavaScript
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'})}));
|
|
});
|