49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
const chai = require('chai');
|
|
const expect = chai.expect;
|
|
chai.use(require('chai-immutable'));
|
|
|
|
const Immutable = require('immutable');
|
|
|
|
const Syndicate = require('../src/main.js');
|
|
const Skeleton = Syndicate.Skeleton;
|
|
const Dataspace = Syndicate.Dataspace;
|
|
const Struct = Syndicate.Struct;
|
|
const __ = Syndicate.__;
|
|
const _$ = Syndicate._$;
|
|
|
|
describe('dataspace', () => {
|
|
it('should boot and run', () => {
|
|
// TODO: convert this into even a rudimentary somewhat-real test case
|
|
// (change console.log into gathering a trace)
|
|
let ds = new Dataspace(() => {
|
|
// console.log('boot');
|
|
Dataspace.currentFacet().addEndpoint(() => {
|
|
let handler = Skeleton.analyzeAssertion(_$);
|
|
handler.callback = (evt, vs) => {
|
|
if (Syndicate.Observe.isClassOf(vs.get(0))) {
|
|
// console.log('OBSERVATION EVENT', evt, vs, vs.get(0).get(0) === _$);
|
|
} else {
|
|
// console.log('EVENT', evt, vs);
|
|
}
|
|
};
|
|
return [Syndicate.Observe(_$), handler];
|
|
});
|
|
Dataspace.deferTurn(() => {
|
|
// console.log('after defer');
|
|
Dataspace.send(1234);
|
|
// console.log('after send');
|
|
Dataspace.spawn('secondproc', () => {
|
|
// console.log('secondproc boot');
|
|
});
|
|
});
|
|
});
|
|
// console.log('--- starting ---');
|
|
while (ds.runScripts()) {
|
|
// console.log('--- runScripts boundary ---');
|
|
}
|
|
// console.log('--- done ---');
|
|
});
|
|
});
|