feature/docker-orchestrator-tests #3
@ -17,7 +17,7 @@ describe('Run', () => {
|
|||||||
apps[0].config.seedPeers.push(apps[1].myRequestAddr);
|
apps[0].config.seedPeers.push(apps[1].myRequestAddr);
|
||||||
apps[1].config.seedPeers.push(apps[0].myRequestAddr);
|
apps[1].config.seedPeers.push(apps[0].myRequestAddr);
|
||||||
|
|
||||||
await Promise.all(apps.map((app) => app.start({ waitForReady: false })));
|
await Promise.all(apps.map((app) => app.start()));
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
|
17
src/node.ts
17
src/node.ts
@ -83,16 +83,13 @@ export class RhizomeNode {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Start the node components
|
* Start the node components
|
||||||
* @param options.startupOptions Options for node startup
|
|
||||||
* @param options.waitForReady Whether to wait for all components to be fully ready (default: false)
|
|
||||||
* @param options.syncOnStart Whether to sync with peers on startup (default: false)
|
* @param options.syncOnStart Whether to sync with peers on startup (default: false)
|
||||||
* @returns Promise that resolves when the node is started (and ready if waitForReady is true)
|
* @returns Promise that resolves when the node is fully started and ready
|
||||||
*/
|
*/
|
||||||
async start({
|
async start({
|
||||||
waitForReady = false,
|
|
||||||
syncOnStart = false
|
syncOnStart = false
|
||||||
}: { waitForReady?: boolean; syncOnStart?: boolean } = {}): Promise<void> {
|
}: { syncOnStart?: boolean } = {}): Promise<void> {
|
||||||
debug(`[${this.config.peerId}]`, `Starting node${waitForReady ? ' (waiting for ready)' : ''}...`);
|
debug(`[${this.config.peerId}]`, 'Starting node (waiting for ready)...');
|
||||||
|
|
||||||
// Connect our lossless view to the delta stream
|
// Connect our lossless view to the delta stream
|
||||||
this.deltaStream.subscribeDeltas(async (delta) => {
|
this.deltaStream.subscribeDeltas(async (delta) => {
|
||||||
@ -115,11 +112,7 @@ export class RhizomeNode {
|
|||||||
|
|
||||||
// Start HTTP server if enabled
|
// Start HTTP server if enabled
|
||||||
if (this.config.httpEnable && this.httpServer) {
|
if (this.config.httpEnable && this.httpServer) {
|
||||||
if (waitForReady) {
|
await this.httpServer.startAndWait();
|
||||||
await this.httpServer.startAndWait();
|
|
||||||
} else {
|
|
||||||
this.httpServer.start();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize network components
|
// Initialize network components
|
||||||
@ -132,7 +125,7 @@ export class RhizomeNode {
|
|||||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
debug(`[${this.config.peerId}]`, `Node started${waitForReady ? ' and ready' : ''}`);
|
debug(`[${this.config.peerId}]`, 'Node started and ready');
|
||||||
}
|
}
|
||||||
|
|
||||||
async stop() {
|
async stop() {
|
||||||
|
@ -61,7 +61,7 @@ export class TestOrchestrator extends BaseOrchestrator {
|
|||||||
// Start the node and wait for all components to be ready
|
// Start the node and wait for all components to be ready
|
||||||
debug(`[${nodeId}] Starting node and waiting for it to be fully ready...`);
|
debug(`[${nodeId}] Starting node and waiting for it to be fully ready...`);
|
||||||
try {
|
try {
|
||||||
await node.start({ waitForReady: true });
|
await node.start();
|
||||||
debug(`[${nodeId}] Node is fully started and ready`);
|
debug(`[${nodeId}] Node is fully started and ready`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
debug(`[${nodeId}] Error starting node:`, error);
|
debug(`[${nodeId}] Error starting node:`, error);
|
||||||
|
@ -172,7 +172,6 @@ export class Lossless {
|
|||||||
viewSpecific(entityId: DomainEntityID, deltaIds: DeltaID[], deltaFilter?: DeltaFilter): LosslessViewOne | undefined {
|
viewSpecific(entityId: DomainEntityID, deltaIds: DeltaID[], deltaFilter?: DeltaFilter): LosslessViewOne | undefined {
|
||||||
const combinedFilter = (delta: Delta) => {
|
const combinedFilter = (delta: Delta) => {
|
||||||
if (!deltaIds.includes(delta.id)) {
|
if (!deltaIds.includes(delta.id)) {
|
||||||
debug(`[${this.rhizomeNode.config.peerId}]`, `Excluding delta ${delta.id} because it's not in the requested list of deltas`);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!deltaFilter) return true;
|
if (!deltaFilter) return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user