Skip to content

Commit cd20d8d

Browse files
committed
test: 💍 fix all tests
1 parent 476e2e6 commit cd20d8d

File tree

9 files changed

+903
-17
lines changed

9 files changed

+903
-17
lines changed

src/common/rpc/__tests__/RpcMessageStreamProcessor.spec.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {RpcMessageStreamProcessor, RpcMessageStreamProcessorOptions} from '../RpcMessageStreamProcessor';
2-
import {RpcError, RpcErrorCodes} from '../caller';
2+
import {RpcError} from '../caller';
33
import {of, from, Subject, Observable, Subscriber} from 'rxjs';
44
import {map, switchMap, take} from 'rxjs/operators';
55
import {ApiRpcCaller, ApiRpcCallerOptions} from '../caller/ApiRpcCaller';
@@ -12,9 +12,9 @@ import {
1212
ResponseErrorMessage,
1313
ResponseUnsubscribeMessage,
1414
} from '../../messages';
15-
import {until} from '../../../../__tests__/util';
15+
import {until} from 'thingies';
1616
import {RpcValue} from '../../messages/Value';
17-
import {t} from '../../../../json-type';
17+
import {t} from 'json-joy/lib/json-type';
1818
import {Defer} from '../../../util/Defer';
1919

2020
const setup = (
@@ -728,8 +728,9 @@ describe('pre-call checks', () => {
728728
server.onMessage(new RequestDataMessage(1, 'test', val({a: '11'})), {foo: 'bar'});
729729
await new Promise((r) => setTimeout(r, 1));
730730
expect(send).toHaveBeenCalledTimes(1);
731-
expect(send.mock.calls[0][0][0]).toBeInstanceOf(ResponseErrorMessage);
732-
expect(send.mock.calls[0][0][0].value.data.message).toBe('BUFFER_OVERFLOW');
731+
const errorValue = send.mock.calls[0][0][0];
732+
expect(errorValue).toBeInstanceOf(ResponseErrorMessage);
733+
expect(errorValue.value.data.message).toBe('BUFFER_OVERFLOW');
733734
});
734735

735736
test('buffer size can be set to 5 for the whole server', async () => {

src/common/rpc/__tests__/RpcPersistentClient.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
import {until} from 'thingies';
2+
import {Codecs} from '@jsonjoy.com/json-pack/lib/codecs/Codecs';
3+
import {Writer} from '@jsonjoy.com/util/lib/buffers/Writer';
14
import {WebSocketChannel} from '../../channel';
25
import {RpcPersistentClient} from '../RpcPersistentClient';
36
import {createWebSocketMock} from '../../channel/mock';
47
import {RequestCompleteMessage} from '../..';
5-
import {until} from '../../../../__tests__/util';
68
import {RpcValue} from '../../messages/Value';
79
import {RpcCodec} from '../../codec/RpcCodec';
8-
import {Codecs} from '@jsonjoy.com/json-pack/lib/codecs/Codecs';
9-
import {Writer} from '@jsonjoy.com/util/lib/buffers/Writer';
1010
import {RpcMessageCodecs} from '../../codec/RpcMessageCodecs';
1111

1212
test('on remote method execution, sends message over WebSocket only once', async () => {

src/common/rpc/caller/RpcCaller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {firstValueFrom, from, Observable, Subject} from 'rxjs';
22
import {catchError, finalize, first, map, mergeWith, share, switchMap, take, tap} from 'rxjs/operators';
3-
import {BufferSubject} from 'json-joy/lib/util/rx/BufferSubject';
43
import {RpcError, RpcErrorCodes, RpcErrorValue} from './error';
54
import {RpcValue} from '../../messages/Value';
65
import {StaticRpcMethod} from '../methods/StaticRpcMethod';
6+
import {BufferSubject} from '../../../util/rx/BufferSubject';
77
import type {Call} from './types';
88
import type {RpcMethod} from '../types';
99
import type {StreamingRpcMethod} from '../methods/StreamingRpcMethod';

src/common/rpc/client/__tests__/StreamingRpcClient.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
ResponseErrorMessage,
1111
} from '../../../messages';
1212
import {firstValueFrom, Subject} from 'rxjs';
13-
import {until} from '../../../../../__tests__/util';
13+
import {until} from 'thingies';
1414
import {RpcValue} from '../../../messages/Value';
1515

1616
test('can create client', async () => {

src/json-crdt-repo/__tests__/LocalHistoryCrud.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import {memfs} from 'memfs';
22
import {NodeCrud} from 'memfs/lib/node-to-crud';
33
import {Locks} from 'thingies/es2020/Locks';
44
import {LocalHistoryCrud} from '../LocalHistoryCrud';
5-
import {Log} from '../../json-crdt-server/log/Log';
6-
import {Model} from '../../json-crdt-server/model';
5+
import {Model} from 'json-joy/lib/json-crdt';
6+
import {Log} from 'json-joy/lib/json-crdt/log/Log';
77

88
const setup = async () => {
99
const {fs, vol} = memfs();

src/json-crdt-repo/remote/__tests__/RemoteHistoryServer.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {Model} from '../../../json-crdt-server/model';
2-
import {buildE2eClient} from '../../../reactive-rpc/common/testing/buildE2eClient';
3-
import {createCaller} from '../../../server/routes/index';
1+
import {Model} from 'json-joy/lib/json-crdt';
2+
import {buildE2eClient} from '../../../common/testing/buildE2eClient';
3+
import {createCaller} from '../../../json-crdt-server/routes';
44
import {RemoteHistoryDemoServer} from '../RemoteHistoryDemoServer';
55

66
const setup = () => {

src/json-crdt-server/__bench__/ping.bench.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
import {Suite} from 'benchmark';
66
import {RpcPersistentClient, WebSocketChannel} from '../../common';
77
import {Writer} from '@jsonjoy.com/util/lib/buffers/Writer';
8-
import {BinaryRpcMessageCodec} from '../../common/codec/binary';
98
import {CompactRpcMessageCodec} from '../../common/codec/compact';
10-
import {CborJsonValueCodec} from '@jsonjoy.com/json-pack/lib/codecs/cbor';
119
import {JsonJsonValueCodec} from '@jsonjoy.com/json-pack/lib/codecs/json';
1210
import {RpcCodec} from '../../common/codec/RpcCodec';
1311
import {WebSocket} from 'ws';

src/util/rx/BufferSubject.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import {Subject, Subscription, Subscriber} from 'rxjs';
2+
import {RpcError, RpcErrorCodes} from '../../common/rpc/caller';
3+
4+
export class BufferSubject<T> extends Subject<T> {
5+
private buffer: T[] = [];
6+
private isBuffering = true;
7+
8+
constructor(public readonly bufferSize: number) {
9+
super();
10+
}
11+
12+
protected _subscribe(subscriber: Subscriber<T>): Subscription {
13+
// @ts-ignore
14+
this._throwIfClosed();
15+
// @ts-ignore
16+
const subscription = this._innerSubscribe(subscriber);
17+
const {buffer} = this;
18+
for (let i = 0; i < buffer.length && !subscriber.closed; i += 1) {
19+
subscriber.next(buffer[i] as T);
20+
}
21+
// @ts-ignore
22+
this._checkFinalizedStatuses(subscriber);
23+
return subscription;
24+
}
25+
26+
public next(value: T): void {
27+
if (this.isBuffering) {
28+
if (this.buffer.length >= this.bufferSize) {
29+
this.error(RpcError.fromCode(RpcErrorCodes.BUFFER_OVERFLOW));
30+
return;
31+
}
32+
this.buffer.push(value);
33+
}
34+
super.next(value);
35+
}
36+
37+
public flush(): void {
38+
this.isBuffering = false;
39+
this.buffer = [];
40+
}
41+
}

0 commit comments

Comments
 (0)