@neurodevs/node-lsl 11.4.2 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/tasks.json +19 -1
- package/README.md +8 -9
- package/build/__tests__/{AbstractLslTest.d.ts → AbstractPackageTest.d.ts} +5 -4
- package/build/__tests__/AbstractPackageTest.js +58 -0
- package/build/__tests__/AbstractPackageTest.js.map +1 -0
- package/build/__tests__/{modules → impl}/LiblslAdapter.test.d.ts +4 -3
- package/build/__tests__/{modules → impl}/LiblslAdapter.test.js +32 -25
- package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -0
- package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts} +5 -4
- package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js} +32 -25
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
- package/build/__tests__/{modules → impl}/LslStreamInfo.test.d.ts +3 -3
- package/build/__tests__/{modules → impl}/LslStreamInfo.test.js +17 -16
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +10 -0
- package/build/__tests__/{modules → impl}/LslStreamInlet.test.js +9 -9
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -0
- package/build/__tests__/{modules → impl}/LslStreamOutlet.test.d.ts +2 -2
- package/build/__tests__/{modules → impl}/LslStreamOutlet.test.js +7 -6
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +7 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.js +63 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -0
- package/build/impl/LiblslAdapter.js.map +1 -0
- package/build/impl/LslEventMarkerOutlet.d.ts +23 -0
- package/build/{modules/EventMarkerOutlet.js → impl/LslEventMarkerOutlet.js} +6 -6
- package/build/impl/LslEventMarkerOutlet.js.map +1 -0
- package/build/{modules → impl}/LslStreamInfo.js +4 -4
- package/build/impl/LslStreamInfo.js.map +1 -0
- package/build/{modules → impl}/LslStreamInlet.d.ts +8 -8
- package/build/{modules → impl}/LslStreamInlet.js +4 -4
- package/build/impl/LslStreamInlet.js.map +1 -0
- package/build/{modules → impl}/LslStreamOutlet.d.ts +8 -8
- package/build/{modules → impl}/LslStreamOutlet.js +2 -2
- package/build/impl/LslStreamOutlet.js.map +1 -0
- package/build/impl/LslWebSocketBridge.d.ts +8 -0
- package/build/impl/LslWebSocketBridge.js +10 -0
- package/build/impl/LslWebSocketBridge.js.map +1 -0
- package/build/index.d.ts +26 -22
- package/build/index.js +41 -34
- package/build/index.js.map +1 -1
- package/build/scripts/{demoMarkerOutlet.js → runLslEventMarkerOutlet.js} +3 -3
- package/build/scripts/runLslEventMarkerOutlet.js.map +1 -0
- package/build/scripts/{demoStreamOutlet.js → runLslStreamOutlet.js} +2 -2
- package/build/scripts/runLslStreamOutlet.js.map +1 -0
- package/build/testDoubles/{MarkerOutlet/FakeMarkerOutlet.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +2 -2
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +29 -0
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.d.ts → EventMarkerOutlet/MockEventMarkerOutlet.d.ts} +2 -2
- package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.js → EventMarkerOutlet/MockEventMarkerOutlet.js} +3 -3
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +9 -0
- package/build/testDoubles/{MarkerOutlet/SpyMarkerOutlet.js → EventMarkerOutlet/SpyEventMarkerOutlet.js} +8 -8
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.d.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts} +2 -2
- package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +3 -3
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +10 -0
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +16 -0
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -0
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +7 -0
- package/build/testDoubles/{LslInlet/SpyLslInlet.js → StreamInlet/SpyStreamInlet.js} +5 -5
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -0
- package/build/testDoubles/{LslOutlet/FakeLslOutlet.d.ts → StreamOutlet/FakeStreamOutlet.d.ts} +9 -10
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +62 -0
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +6 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +13 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -0
- package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
- package/build/testDoubles/generateRandomOutletOptions.js +10 -7
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/types.d.ts +3 -3
- package/package.json +20 -8
- package/src/__tests__/{AbstractLslTest.ts → AbstractPackageTest.ts} +22 -17
- package/src/__tests__/{modules → impl}/LiblslAdapter.test.ts +25 -19
- package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts} +38 -27
- package/src/__tests__/{modules → impl}/LslStreamInfo.test.ts +7 -6
- package/src/__tests__/{modules → impl}/LslStreamInlet.test.ts +12 -12
- package/src/__tests__/{modules → impl}/LslStreamOutlet.test.ts +18 -11
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +23 -0
- package/src/{modules/EventMarkerOutlet.ts → impl/LslEventMarkerOutlet.ts} +16 -11
- package/src/{modules → impl}/LslStreamInfo.ts +1 -1
- package/src/{modules → impl}/LslStreamInlet.ts +12 -12
- package/src/{modules → impl}/LslStreamOutlet.ts +12 -12
- package/src/impl/LslWebSocketBridge.ts +13 -0
- package/src/index.ts +37 -29
- package/src/scripts/{demoMarkerOutlet.ts → runLslEventMarkerOutlet.ts} +2 -2
- package/src/scripts/{demoStreamOutlet.ts → runLslStreamOutlet.ts} +1 -1
- package/src/testDoubles/{MarkerOutlet/FakeMarkerOutlet.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +6 -6
- package/src/testDoubles/{MarkerOutlet/MockMarkerOutlet.ts → EventMarkerOutlet/MockEventMarkerOutlet.ts} +2 -2
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +24 -0
- package/src/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +2 -2
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +20 -0
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +16 -0
- package/src/testDoubles/{LslOutlet/FakeLslOutlet.ts → StreamOutlet/FakeStreamOutlet.ts} +17 -18
- package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +15 -0
- package/src/testDoubles/generateRandomOutletOptions.ts +3 -3
- package/src/types.ts +3 -3
- package/build/__tests__/AbstractLslTest.js +0 -87
- package/build/__tests__/AbstractLslTest.js.map +0 -1
- package/build/__tests__/modules/EventMarkerOutlet.test.js.map +0 -1
- package/build/__tests__/modules/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamInfo.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamInlet.test.d.ts +0 -10
- package/build/__tests__/modules/LslStreamInlet.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamOutlet.test.js.map +0 -1
- package/build/modules/EventMarkerOutlet.d.ts +0 -23
- package/build/modules/EventMarkerOutlet.js.map +0 -1
- package/build/modules/LiblslAdapter.js.map +0 -1
- package/build/modules/LslStreamInfo.js.map +0 -1
- package/build/modules/LslStreamInlet.js.map +0 -1
- package/build/modules/LslStreamOutlet.js.map +0 -1
- package/build/scripts/demoMarkerOutlet.js.map +0 -1
- package/build/scripts/demoStreamOutlet.js.map +0 -1
- package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +0 -11
- package/build/testDoubles/LslInlet/FakeLslInlet.js +0 -16
- package/build/testDoubles/LslInlet/FakeLslInlet.js.map +0 -1
- package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +0 -7
- package/build/testDoubles/LslInlet/SpyLslInlet.js.map +0 -1
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js +0 -59
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +0 -29
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +0 -1
- package/src/testDoubles/LslInlet/FakeLslInlet.ts +0 -22
- package/src/testDoubles/LslInlet/SpyLslInlet.ts +0 -16
- package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +0 -24
- /package/build/{modules → impl}/LiblslAdapter.d.ts +0 -0
- /package/build/{modules → impl}/LiblslAdapter.js +0 -0
- /package/build/{modules → impl}/LslStreamInfo.d.ts +0 -0
- /package/build/scripts/{demoMarkerOutlet.d.ts → runLslEventMarkerOutlet.d.ts} +0 -0
- /package/build/scripts/{demoStreamOutlet.d.ts → runLslStreamOutlet.d.ts} +0 -0
- /package/src/{modules → impl}/LiblslAdapter.ts +0 -0
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.default = generateRandomOutletOptions;
|
|
4
7
|
const crypto_1 = require("crypto");
|
|
5
|
-
const
|
|
8
|
+
const generate_id_1 = __importDefault(require("@neurodevs/generate-id"));
|
|
6
9
|
const consts_1 = require("./consts");
|
|
7
10
|
function generateRandomOutletOptions() {
|
|
8
11
|
const randomChannelIdx = (0, crypto_1.randomInt)(consts_1.TEST_SUPPORTED_CHANNEL_FORMATS.length);
|
|
9
12
|
return {
|
|
10
|
-
name: (0,
|
|
11
|
-
type: (0,
|
|
12
|
-
channelNames: new Array((0, crypto_1.randomInt)(1, 10)).fill((0,
|
|
13
|
+
name: (0, generate_id_1.default)(),
|
|
14
|
+
type: (0, generate_id_1.default)(),
|
|
15
|
+
channelNames: new Array((0, crypto_1.randomInt)(1, 10)).fill((0, generate_id_1.default)()),
|
|
13
16
|
sampleRate: Math.random() * 10,
|
|
14
17
|
channelFormat: consts_1.TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
|
|
15
|
-
sourceId: (0,
|
|
16
|
-
manufacturer: (0,
|
|
17
|
-
unit: (0,
|
|
18
|
+
sourceId: (0, generate_id_1.default)(),
|
|
19
|
+
manufacturer: (0, generate_id_1.default)(),
|
|
20
|
+
unit: (0, generate_id_1.default)(),
|
|
18
21
|
chunkSize: (0, crypto_1.randomInt)(0, 10),
|
|
19
22
|
maxBuffered: (0, crypto_1.randomInt)(0, 10),
|
|
20
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":";;;;;AAKA,8CAeC;AApBD,mCAAkC;AAClC,yEAA+C;AAE/C,qCAAyD;AAEzD,SAAwB,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,uCAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,uCAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,IAAA,qBAAU,GAAE;QACtB,YAAY,EAAE,IAAA,qBAAU,GAAE;QAC1B,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,SAAS,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;KACT,CAAA;AAC5B,CAAC"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
2
|
import { CHANNEL_FORMATS } from './consts';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
export type StreamFixuture =
|
|
3
|
+
import { StreamInlet } from './impl/LslStreamInlet';
|
|
4
|
+
import { StreamOutlet } from './impl/LslStreamOutlet';
|
|
5
|
+
export type StreamFixuture = StreamOutlet | StreamInlet;
|
|
6
6
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
7
7
|
export interface DurationMarker {
|
|
8
8
|
name: string;
|
package/package.json
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/node-lsl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "Lab Streaming Layer (LSL) bindings for Node",
|
|
5
|
-
"
|
|
5
|
+
"keywords": [
|
|
6
|
+
"nodejs",
|
|
7
|
+
"typescript",
|
|
8
|
+
"tdd"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Eric Yates <hello@ericthecurious.com>",
|
|
12
|
+
"homepage": "https://github.com/neurodevs/node-lsl",
|
|
6
13
|
"repository": {
|
|
7
14
|
"type": "git",
|
|
8
15
|
"url": "git+https://github.com/neurodevs/node-lsl.git"
|
|
9
16
|
},
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/neurodevs/node-lsl/issues"
|
|
19
|
+
},
|
|
20
|
+
"main": "build/index.js",
|
|
10
21
|
"scripts": {
|
|
11
22
|
"build.ci": "yarn run build.tsc && yarn run build.resolve-paths && yarn run lint",
|
|
12
23
|
"build.dev": "yarn run build.tsc --sourceMap ; yarn run resolve-paths.lint",
|
|
@@ -38,6 +49,7 @@
|
|
|
38
49
|
"ref-napi": "^3.0.3"
|
|
39
50
|
},
|
|
40
51
|
"devDependencies": {
|
|
52
|
+
"@neurodevs/generate-id": "^1.0.0",
|
|
41
53
|
"@sprucelabs/jest-json-reporter": "^8.0.542",
|
|
42
54
|
"@sprucelabs/resolve-path-aliases": "^2.0.516",
|
|
43
55
|
"@sprucelabs/test": "^9.0.59",
|
|
@@ -55,12 +67,6 @@
|
|
|
55
67
|
"tsc-watch": "^6.2.1",
|
|
56
68
|
"typescript": "^5.6.3"
|
|
57
69
|
},
|
|
58
|
-
"skill": {
|
|
59
|
-
"namespace": "node-lsl",
|
|
60
|
-
"upgradeIgnoreList": [
|
|
61
|
-
"@sprucelabs/spruce-test-fixtures"
|
|
62
|
-
]
|
|
63
|
-
},
|
|
64
70
|
"jest": {
|
|
65
71
|
"testRunner": "jest-circus/runner",
|
|
66
72
|
"maxWorkers": 4,
|
|
@@ -78,5 +84,11 @@
|
|
|
78
84
|
"moduleNameMapper": {
|
|
79
85
|
"^#spruce/(.*)$": "<rootDir>/build/.spruce/$1"
|
|
80
86
|
}
|
|
87
|
+
},
|
|
88
|
+
"skill": {
|
|
89
|
+
"namespace": "node-lsl",
|
|
90
|
+
"upgradeIgnoreList": [
|
|
91
|
+
"@sprucelabs/spruce-test-fixtures"
|
|
92
|
+
]
|
|
81
93
|
}
|
|
82
94
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import AbstractSpruceTest
|
|
2
|
-
import
|
|
3
|
-
import LiblslAdapter from '../
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import AbstractSpruceTest from '@sprucelabs/test-utils'
|
|
2
|
+
import generateId from '@neurodevs/generate-id'
|
|
3
|
+
import LiblslAdapter from '../impl/LiblslAdapter'
|
|
4
|
+
import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet'
|
|
5
|
+
import LslStreamInfo from '../impl/LslStreamInfo'
|
|
6
|
+
import LslStreamInlet from '../impl/LslStreamInlet'
|
|
6
7
|
|
|
7
|
-
import LslStreamOutlet from '../
|
|
8
|
+
import LslStreamOutlet from '../impl/LslStreamOutlet'
|
|
9
|
+
import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
|
|
8
10
|
import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl'
|
|
9
|
-
import { SpyLslInlet } from '../testDoubles/LslInlet/SpyLslInlet'
|
|
10
|
-
import FakeLslOutlet from '../testDoubles/LslOutlet/FakeLslOutlet'
|
|
11
|
-
import SpyMarkerOutlet from '../testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
12
11
|
import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo'
|
|
13
12
|
import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo'
|
|
13
|
+
import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet'
|
|
14
|
+
import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet'
|
|
14
15
|
|
|
15
|
-
export default class
|
|
16
|
+
export default class AbstractPackageTest extends AbstractSpruceTest {
|
|
16
17
|
protected static fakeLiblsl: FakeLiblsl
|
|
17
18
|
|
|
18
19
|
protected static async beforeEach() {
|
|
@@ -35,17 +36,21 @@ export default class AbstractLslTest extends AbstractSpruceTest {
|
|
|
35
36
|
FakeStreamInfo.resetTestDouble()
|
|
36
37
|
}
|
|
37
38
|
|
|
38
|
-
protected static
|
|
39
|
-
LslStreamInlet.Class =
|
|
39
|
+
protected static setSpyStreamInlet() {
|
|
40
|
+
LslStreamInlet.Class = SpyStreamInlet
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
protected static
|
|
43
|
-
LslStreamOutlet.Class =
|
|
44
|
-
|
|
43
|
+
protected static setFakeStreamOutlet() {
|
|
44
|
+
LslStreamOutlet.Class = FakeStreamOutlet
|
|
45
|
+
FakeStreamOutlet.resetTestDouble()
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
protected static
|
|
48
|
-
|
|
48
|
+
protected static setSpyEventMarkerOutlet() {
|
|
49
|
+
LslEventMarkerOutlet.Class = SpyEventMarkerOutlet
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
protected static generateId() {
|
|
53
|
+
return generateId()
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
protected static readonly name_ = generateId()
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
|
-
import { test, assert
|
|
2
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
3
|
+
import generateId from '@neurodevs/generate-id'
|
|
3
4
|
import { DataType, OpenParams } from 'ffi-rs'
|
|
4
|
-
import LiblslAdapter from '../../
|
|
5
|
+
import LiblslAdapter from '../../impl/LiblslAdapter'
|
|
5
6
|
import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl'
|
|
6
7
|
import {
|
|
7
8
|
BoundChild,
|
|
@@ -14,10 +15,10 @@ import {
|
|
|
14
15
|
LiblslBindings,
|
|
15
16
|
LslChannel,
|
|
16
17
|
} from '../../types'
|
|
17
|
-
import
|
|
18
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
18
19
|
|
|
19
|
-
export default class LiblslAdapterTest extends
|
|
20
|
-
private static
|
|
20
|
+
export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
21
|
+
private static instance: Liblsl
|
|
21
22
|
private static libraryPath?: string
|
|
22
23
|
private static libraryOptions?: Record<string, any>
|
|
23
24
|
private static fakeBindings: LiblslBindings
|
|
@@ -85,7 +86,12 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
LiblslAdapter.resetInstance()
|
|
88
|
-
this.
|
|
89
|
+
this.instance = LiblslAdapter.getInstance()
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@test()
|
|
93
|
+
protected static async createsInstance() {
|
|
94
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
@test()
|
|
@@ -213,7 +219,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
213
219
|
@test()
|
|
214
220
|
protected static async canCreateStreamInfoWithRequiredParams() {
|
|
215
221
|
const options = this.generateRandomCreateStreamInfoOptions()
|
|
216
|
-
const actual = this.
|
|
222
|
+
const actual = this.instance.createStreamInfo(options)
|
|
217
223
|
|
|
218
224
|
assert.isEqual(actual, this.fakeStreamInfo)
|
|
219
225
|
assert.isEqualDeep(this.createStreamInfoParams, Object.values(options))
|
|
@@ -235,7 +241,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
235
241
|
sample: expected,
|
|
236
242
|
timestamp,
|
|
237
243
|
}
|
|
238
|
-
this.
|
|
244
|
+
this.instance.pushSampleFloatTimestamp(options)
|
|
239
245
|
|
|
240
246
|
assert.isEqualDeep(this.pushSampleFloatTimestampParams, [
|
|
241
247
|
this.fakeOutlet,
|
|
@@ -253,7 +259,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
253
259
|
sample: expected,
|
|
254
260
|
timestamp,
|
|
255
261
|
}
|
|
256
|
-
this.
|
|
262
|
+
this.instance.pushSampleStringTimestamp(options)
|
|
257
263
|
assert.isEqual(
|
|
258
264
|
this.pushSampleStringTimestampParams?.[0],
|
|
259
265
|
this.fakeOutlet
|
|
@@ -267,7 +273,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
267
273
|
const info = this.createRandomStreamInfo()
|
|
268
274
|
const channel: LslChannel = this.generateRandomChannelValues()
|
|
269
275
|
|
|
270
|
-
this.
|
|
276
|
+
this.instance.appendChannelsToStreamInfo({
|
|
271
277
|
info,
|
|
272
278
|
channels: [channel],
|
|
273
279
|
})
|
|
@@ -304,7 +310,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
304
310
|
const channel1 = this.generateRandomChannelValues()
|
|
305
311
|
const channel2 = this.generateRandomChannelValues()
|
|
306
312
|
|
|
307
|
-
this.
|
|
313
|
+
this.instance.appendChannelsToStreamInfo({
|
|
308
314
|
info,
|
|
309
315
|
channels: [channel1, channel2],
|
|
310
316
|
})
|
|
@@ -324,23 +330,23 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
324
330
|
protected static async canDestroyOutlet() {
|
|
325
331
|
const outlet = this.createRandomOutlet()
|
|
326
332
|
const options = { outlet }
|
|
327
|
-
this.
|
|
333
|
+
this.instance.destroyOutlet(options)
|
|
328
334
|
|
|
329
335
|
assert.isEqualDeep(this.destroyOutletParams, Object.values(options))
|
|
330
336
|
}
|
|
331
337
|
|
|
332
338
|
@test()
|
|
333
339
|
protected static async callingLocalClockTwiceReturnsDifferentTimestamps() {
|
|
334
|
-
const t1 = this.
|
|
340
|
+
const t1 = this.instance.localClock()
|
|
335
341
|
await this.wait(10)
|
|
336
|
-
const t2 = this.
|
|
342
|
+
const t2 = this.instance.localClock()
|
|
337
343
|
assert.isNotEqual(t1, t2)
|
|
338
344
|
}
|
|
339
345
|
|
|
340
346
|
@test()
|
|
341
347
|
protected static async localClockBindingReceivesEmptyArray() {
|
|
342
348
|
delete this.localClockParams
|
|
343
|
-
this.
|
|
349
|
+
this.instance.localClock()
|
|
344
350
|
assert.isEqualDeep(this.localClockParams, [])
|
|
345
351
|
}
|
|
346
352
|
|
|
@@ -349,7 +355,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
349
355
|
delete process.env.LIBLSL_PATH
|
|
350
356
|
|
|
351
357
|
LiblslAdapter.resetInstance()
|
|
352
|
-
this.
|
|
358
|
+
this.instance = LiblslAdapter.getInstance()
|
|
353
359
|
|
|
354
360
|
assert.isEqual(
|
|
355
361
|
this.ffiRsOpenOptions?.path,
|
|
@@ -365,20 +371,20 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
365
371
|
}
|
|
366
372
|
|
|
367
373
|
private static createRandomStreamInfo() {
|
|
368
|
-
return this.
|
|
374
|
+
return this.instance.createStreamInfo(
|
|
369
375
|
this.generateRandomCreateStreamInfoOptions()
|
|
370
376
|
)
|
|
371
377
|
}
|
|
372
378
|
|
|
373
379
|
private static createRandomOutlet() {
|
|
374
380
|
const options = this.createRandomOptions()
|
|
375
|
-
const outlet = this.
|
|
381
|
+
const outlet = this.instance.createOutlet(options)
|
|
376
382
|
return { options, outlet }
|
|
377
383
|
}
|
|
378
384
|
|
|
379
385
|
private static createRandomInlet() {
|
|
380
386
|
const options = this.createRandomOptions()
|
|
381
|
-
const inlet = this.
|
|
387
|
+
const inlet = this.instance.createInlet(options)
|
|
382
388
|
return { options, inlet }
|
|
383
389
|
}
|
|
384
390
|
|
package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts}
RENAMED
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
|
-
import { assert,
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import { assert, test } from '@sprucelabs/test-utils'
|
|
3
|
+
import generateId from '@neurodevs/generate-id'
|
|
4
|
+
import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet'
|
|
5
|
+
import { StreamOutletOptions } from '../../impl/LslStreamOutlet'
|
|
6
|
+
import SpyEventMarkerOutlet from '../../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
|
|
5
7
|
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import AbstractLslTest from '../AbstractLslTest'
|
|
8
|
+
import FakeStreamOutlet from '../../testDoubles/StreamOutlet/FakeStreamOutlet'
|
|
9
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
9
10
|
|
|
10
|
-
export default class EventMarkerOutletTest extends
|
|
11
|
-
private static instance:
|
|
11
|
+
export default class EventMarkerOutletTest extends AbstractPackageTest {
|
|
12
|
+
private static instance: SpyEventMarkerOutlet
|
|
12
13
|
|
|
13
14
|
protected static async beforeEach() {
|
|
14
15
|
await super.beforeEach()
|
|
15
16
|
|
|
16
17
|
this.setFakeLiblsl()
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
18
|
+
this.setFakeStreamOutlet()
|
|
19
|
+
this.setSpyEventMarkerOutlet()
|
|
19
20
|
|
|
20
|
-
this.instance = await this.
|
|
21
|
+
this.instance = await this.LslEventMarkerOutlet()
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@test()
|
|
25
|
+
protected static async createsInstance() {
|
|
26
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
@test()
|
|
24
30
|
protected static async loadsWithEventMarkerSpecificOptions() {
|
|
25
|
-
assert.isEqualDeep(
|
|
31
|
+
assert.isEqualDeep(FakeStreamOutlet.callsToConstructor[0].options, {
|
|
26
32
|
name: 'Event markers',
|
|
27
33
|
type: 'Markers',
|
|
28
34
|
channelNames: ['Markers'],
|
|
@@ -39,9 +45,12 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
39
45
|
@test()
|
|
40
46
|
protected static async canOverrideDefaultOptions() {
|
|
41
47
|
const options = generateRandomOutletOptions()
|
|
42
|
-
await this.
|
|
48
|
+
await this.LslEventMarkerOutlet(options)
|
|
43
49
|
|
|
44
|
-
assert.isEqualDeep(
|
|
50
|
+
assert.isEqualDeep(
|
|
51
|
+
FakeStreamOutlet.callsToConstructor[1].options,
|
|
52
|
+
options
|
|
53
|
+
)
|
|
45
54
|
}
|
|
46
55
|
|
|
47
56
|
@test()
|
|
@@ -52,7 +61,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
52
61
|
const marker = markers[0]
|
|
53
62
|
|
|
54
63
|
assert.isEqual(
|
|
55
|
-
|
|
64
|
+
FakeStreamOutlet.callsToPushSample[0][0],
|
|
56
65
|
marker.name,
|
|
57
66
|
'Pushed the wrong marker!'
|
|
58
67
|
)
|
|
@@ -64,7 +73,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
64
73
|
protected static async pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice() {
|
|
65
74
|
const markers = await this.pushTotalMarkers(2)
|
|
66
75
|
|
|
67
|
-
assert.isEqual(
|
|
76
|
+
assert.isEqual(FakeStreamOutlet.callsToPushSample.length, 2)
|
|
68
77
|
|
|
69
78
|
assert.isEqual(
|
|
70
79
|
this.instance.totalWaitTimeMs,
|
|
@@ -78,7 +87,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
78
87
|
protected static async canStopEventMarkersMidPush(bailIdx: number) {
|
|
79
88
|
let hitCount = 0
|
|
80
89
|
|
|
81
|
-
const outlet = this.instance.
|
|
90
|
+
const outlet = this.instance.getStreamOutlet()
|
|
82
91
|
|
|
83
92
|
outlet.pushSample = () => {
|
|
84
93
|
hitCount += 1
|
|
@@ -98,7 +107,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
98
107
|
|
|
99
108
|
let hitCount = 0
|
|
100
109
|
|
|
101
|
-
const outlet = this.instance.
|
|
110
|
+
const outlet = this.instance.getStreamOutlet()
|
|
102
111
|
|
|
103
112
|
outlet.pushSample = () => {
|
|
104
113
|
hitCount++
|
|
@@ -127,7 +136,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
127
136
|
void this.pushTotalMarkers(2, 100)
|
|
128
137
|
this.instance.stop()
|
|
129
138
|
|
|
130
|
-
this.
|
|
139
|
+
this.streamOutlet.pushSample = () =>
|
|
131
140
|
assert.fail('Should not have been called')
|
|
132
141
|
}
|
|
133
142
|
|
|
@@ -136,16 +145,16 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
136
145
|
const markerName = generateId()
|
|
137
146
|
this.instance.pushMarker(markerName)
|
|
138
147
|
|
|
139
|
-
assert.isEqual(
|
|
148
|
+
assert.isEqual(FakeStreamOutlet.callsToPushSample[0][0], markerName)
|
|
140
149
|
}
|
|
141
150
|
|
|
142
|
-
private static get
|
|
143
|
-
return this.instance.
|
|
151
|
+
private static get streamOutlet() {
|
|
152
|
+
return this.instance.getStreamOutlet()
|
|
144
153
|
}
|
|
145
154
|
|
|
146
155
|
private static async setupOutlet() {
|
|
147
|
-
|
|
148
|
-
this.instance = await this.
|
|
156
|
+
LslEventMarkerOutlet.Class = LslEventMarkerOutlet as any
|
|
157
|
+
this.instance = await this.LslEventMarkerOutlet()
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
private static async pushTotalMarkers(total: number, durationMs?: number) {
|
|
@@ -165,9 +174,11 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
176
|
|
|
168
|
-
private static async
|
|
169
|
-
options?: Partial<
|
|
177
|
+
private static async LslEventMarkerOutlet(
|
|
178
|
+
options?: Partial<StreamOutletOptions>
|
|
170
179
|
) {
|
|
171
|
-
return (await
|
|
180
|
+
return (await LslEventMarkerOutlet.Create(
|
|
181
|
+
options
|
|
182
|
+
)) as SpyEventMarkerOutlet
|
|
172
183
|
}
|
|
173
184
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { test, assert
|
|
1
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
|
+
import generateId from '@neurodevs/generate-id'
|
|
2
3
|
import { CHANNEL_FORMATS } from '../../consts'
|
|
3
|
-
import LslStreamInfo, { StreamInfoOptions } from '../../
|
|
4
|
+
import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo'
|
|
4
5
|
import SpyStreamInfo from '../../testDoubles/StreamInfo/SpyStreamInfo'
|
|
5
|
-
import
|
|
6
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
6
7
|
|
|
7
|
-
export default class LslStreamInfoTest extends
|
|
8
|
+
export default class LslStreamInfoTest extends AbstractPackageTest {
|
|
8
9
|
private static instance: SpyStreamInfo
|
|
9
10
|
|
|
10
11
|
protected static async beforeEach() {
|
|
@@ -16,8 +17,8 @@ export default class LslStreamInfoTest extends AbstractLslTest {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
@test()
|
|
19
|
-
protected static async
|
|
20
|
-
assert.isTruthy(this.instance, '
|
|
20
|
+
protected static async createsInstance() {
|
|
21
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
@test()
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
|
-
import LslStreamInlet, {
|
|
3
|
-
import { SpyLslInlet } from '../../testDoubles/LslInlet/SpyLslInlet'
|
|
2
|
+
import LslStreamInlet, { StreamInletOptions } from '../../impl/LslStreamInlet'
|
|
4
3
|
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
|
|
5
|
-
import
|
|
4
|
+
import { SpyStreamInlet } from '../../testDoubles/StreamInlet/SpyStreamInlet'
|
|
5
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
6
6
|
|
|
7
|
-
export default class LslStreamInletTest extends
|
|
8
|
-
private static instance:
|
|
7
|
+
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
8
|
+
private static instance: SpyStreamInlet
|
|
9
9
|
|
|
10
10
|
protected static async beforeEach() {
|
|
11
11
|
await super.beforeEach()
|
|
12
12
|
|
|
13
|
-
this.
|
|
13
|
+
this.setSpyStreamInlet()
|
|
14
14
|
this.setFakeStreamInfo()
|
|
15
15
|
|
|
16
16
|
this.instance = this.LslStreamInlet()
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
@test()
|
|
20
|
-
protected static async
|
|
21
|
-
assert.isTruthy(this.instance, '
|
|
20
|
+
protected static async createsInstance() {
|
|
21
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
@test()
|
|
@@ -49,7 +49,7 @@ export default class LslStreamInletTest extends AbstractLslTest {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
@test()
|
|
52
|
-
protected static async
|
|
52
|
+
protected static async callsBindingsToCreateStreamInlet() {
|
|
53
53
|
const fakeInfo = this.instance.getStreamInfo()
|
|
54
54
|
|
|
55
55
|
assert.isTruthy(fakeInfo, 'Should have created stream info!')
|
|
@@ -65,7 +65,7 @@ export default class LslStreamInletTest extends AbstractLslTest {
|
|
|
65
65
|
)
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
private static LslStreamInlet(options?: Partial<
|
|
68
|
+
private static LslStreamInlet(options?: Partial<StreamInletOptions>) {
|
|
69
69
|
const defaultOptions = {
|
|
70
70
|
channelNames: this.channelNames,
|
|
71
71
|
channelFormat: 'float32',
|
|
@@ -76,7 +76,7 @@ export default class LslStreamInletTest extends AbstractLslTest {
|
|
|
76
76
|
chunkSize: this.chunkSize,
|
|
77
77
|
maxBuffered: this.maxBuffered,
|
|
78
78
|
...options,
|
|
79
|
-
} as
|
|
80
|
-
return LslStreamInlet.Create(defaultOptions) as
|
|
79
|
+
} as StreamInletOptions
|
|
80
|
+
return LslStreamInlet.Create(defaultOptions) as SpyStreamInlet
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { test, assert
|
|
1
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
|
+
import generateId from '@neurodevs/generate-id'
|
|
2
3
|
import { CHANNEL_FORMATS } from '../../consts'
|
|
3
|
-
import { StreamInfo } from '../../
|
|
4
|
+
import { StreamInfo } from '../../impl/LslStreamInfo'
|
|
4
5
|
import LslStreamOutlet, {
|
|
5
|
-
|
|
6
|
-
} from '../../
|
|
6
|
+
StreamOutletOptions,
|
|
7
|
+
} from '../../impl/LslStreamOutlet'
|
|
7
8
|
import {
|
|
8
9
|
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
9
10
|
TEST_UNSUPPORTED_CHANNEL_FORMATS,
|
|
@@ -13,10 +14,10 @@ import {
|
|
|
13
14
|
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
|
|
14
15
|
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
|
|
15
16
|
import { ChannelFormat, LslSample } from '../../types'
|
|
16
|
-
import
|
|
17
|
+
import AbstractPackageTest from '../AbstractPackageTest'
|
|
17
18
|
|
|
18
|
-
export default class LslStreamOutletTest extends
|
|
19
|
-
private static randomOutletOptions:
|
|
19
|
+
export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
20
|
+
private static randomOutletOptions: StreamOutletOptions
|
|
20
21
|
|
|
21
22
|
protected static async beforeEach() {
|
|
22
23
|
await super.beforeEach()
|
|
@@ -254,14 +255,18 @@ export default class LslStreamOutletTest extends AbstractLslTest {
|
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
private static async createAndAssertThrows(
|
|
257
|
-
option: keyof
|
|
258
|
+
option: keyof StreamOutletOptions,
|
|
258
259
|
value: number | string[] | ChannelFormat,
|
|
259
260
|
expectedMessage: string
|
|
260
261
|
) {
|
|
261
262
|
const err = await assert.doesThrowAsync(
|
|
262
263
|
async () => await this.LslStreamOutlet({ [option]: value })
|
|
263
264
|
)
|
|
264
|
-
|
|
265
|
+
|
|
266
|
+
assert.isTrue(
|
|
267
|
+
err.message.includes(expectedMessage),
|
|
268
|
+
'Did not receive the expected error!'
|
|
269
|
+
)
|
|
265
270
|
}
|
|
266
271
|
|
|
267
272
|
private static async StringOutlet() {
|
|
@@ -272,7 +277,9 @@ export default class LslStreamOutletTest extends AbstractLslTest {
|
|
|
272
277
|
return await this.LslStreamOutlet({ channelFormat: 'float32' })
|
|
273
278
|
}
|
|
274
279
|
|
|
275
|
-
private static async LslStreamOutlet(
|
|
280
|
+
private static async LslStreamOutlet(
|
|
281
|
+
options?: Partial<StreamOutletOptions>
|
|
282
|
+
) {
|
|
276
283
|
return await LslStreamOutlet.Create({
|
|
277
284
|
...this.randomOutletOptions,
|
|
278
285
|
...options,
|
|
@@ -281,7 +288,7 @@ export default class LslStreamOutletTest extends AbstractLslTest {
|
|
|
281
288
|
}
|
|
282
289
|
|
|
283
290
|
class CheckingOutlet extends LslStreamOutlet {
|
|
284
|
-
public constructor(info: StreamInfo, options:
|
|
291
|
+
public constructor(info: StreamInfo, options: StreamOutletOptions) {
|
|
285
292
|
super(info, options)
|
|
286
293
|
}
|
|
287
294
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test-utils'
|
|
2
|
+
import LslWebSocketBridge, {
|
|
3
|
+
StreamTransportBridge,
|
|
4
|
+
} from '../../impl/LslWebSocketBridge'
|
|
5
|
+
|
|
6
|
+
export default class LslWebSocketBridgeTest extends AbstractSpruceTest {
|
|
7
|
+
private static instance: StreamTransportBridge
|
|
8
|
+
|
|
9
|
+
protected static async beforeEach() {
|
|
10
|
+
await super.beforeEach()
|
|
11
|
+
|
|
12
|
+
this.instance = this.LslWebSocketBridge()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@test()
|
|
16
|
+
protected static async createsInstance() {
|
|
17
|
+
assert.isTruthy(this.instance, 'Failed to create instance!')
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private static LslWebSocketBridge() {
|
|
21
|
+
return LslWebSocketBridge.Create()
|
|
22
|
+
}
|
|
23
|
+
}
|