@neurodevs/node-lsl 7.0.0 → 7.1.1

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.
@@ -1,6 +1,7 @@
1
- import { TimeMarkerOutlet, LslOutletOptions, DurationMarker } from '../nodeLsl.types';
1
+ import { TimeMarkerOutlet, LslOutletOptions, DurationMarker, TimeMarkerOutletConstructor } from '../nodeLsl.types';
2
2
  import LslOutletImpl from './LslOutlet';
3
3
  export default class TimeMarkerOutletImpl extends LslOutletImpl implements TimeMarkerOutlet {
4
+ static Class?: TimeMarkerOutletConstructor;
4
5
  private isPlaying;
5
6
  private waitResolve?;
6
7
  private timeout?;
@@ -23,7 +23,6 @@ class TimeMarkerOutletImpl extends LslOutlet_1.default {
23
23
  chunkSize: 0,
24
24
  maxBuffered: 0,
25
25
  };
26
- //@ts-ignore
27
26
  return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(Object.assign(Object.assign({}, defaultOptions), options));
28
27
  }
29
28
  async pushMarkers(markers) {
@@ -1 +1 @@
1
- {"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAKA,4DAAuC;AAEvC,MAAqB,oBACpB,SAAQ,mBAAa;IADtB;;QAIS,cAAS,GAAY,KAAK,CAAA;IAqDnC,CAAC;IAjDO,MAAM,CAAC,MAAM,CAAC,OAAmC;;QACvD,MAAM,cAAc,GAAG;YACtB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACM,CAAA;QAErB,YAAY;QACZ,OAAO,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,iCAC3B,cAAc,GACd,OAAO,EACW,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAE9B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAElC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACtE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACvE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC/C,CAAC;IAEM,IAAI;;QACV,MAAA,IAAI,CAAC,WAAW,oDAAI,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACvB,CAAC;CACD;AAzDD,uCAyDC"}
1
+ {"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAMA,4DAAuC;AAEvC,MAAqB,oBACpB,SAAQ,mBAAa;IADtB;;QAMS,cAAS,GAAY,KAAK,CAAA;IAoDnC,CAAC;IAhDO,MAAM,CAAC,MAAM,CAAC,OAAmC;;QACvD,MAAM,cAAc,GAAG;YACtB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACM,CAAA;QAErB,OAAO,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,iCAC3B,cAAc,GACd,OAAO,EACW,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAE9B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAElC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACtE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACvE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC/C,CAAC;IAEM,IAAI;;QACV,MAAA,IAAI,CAAC,WAAW,oDAAI,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACvB,CAAC;CACD;AA1DD,uCA0DC"}
@@ -22,7 +22,7 @@ export interface TimeMarkerOutlet extends LslOutlet {
22
22
  pushMarkers(markers: DurationMarker[]): Promise<void>;
23
23
  stop(): void;
24
24
  }
25
- export type TimeMarkerOutletConstructor = new () => TimeMarkerOutlet;
25
+ export type TimeMarkerOutletConstructor = new (options: LslOutletOptions) => TimeMarkerOutlet;
26
26
  export interface DurationMarker {
27
27
  name: string;
28
28
  durationMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"nodeLsl.types.js","sourceRoot":"","sources":["../src/nodeLsl.types.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AACtC,wDAA0B;AAmIb,QAAA,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxC,QAAA,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxC,QAAA,UAAU,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACvC,QAAA,WAAW,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC1C,QAAA,MAAM,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"nodeLsl.types.js","sourceRoot":"","sources":["../src/nodeLsl.types.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsC;AACtC,wDAA0B;AAqIb,QAAA,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxC,QAAA,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxC,QAAA,UAAU,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACvC,QAAA,WAAW,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC1C,QAAA,MAAM,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA"}
@@ -2,12 +2,16 @@ import { DurationMarker, LslSample, TimeMarkerOutlet } from '..';
2
2
  export default class MockTimeMarkerOutlet implements TimeMarkerOutlet {
3
3
  static instance: MockTimeMarkerOutlet;
4
4
  private didPushMarkers;
5
- private markers?;
5
+ private pushedMarkers?;
6
+ private didPushSamples;
7
+ private pushedSamples?;
6
8
  constructor();
7
9
  stop(): void;
8
10
  destroy(): void;
9
- pushSample(_sample: LslSample): void;
11
+ pushSample(sample: LslSample): void;
10
12
  pushMarkers(markers: DurationMarker[]): Promise<void>;
13
+ assertDidPushSamples(samples?: LslSample[]): void;
14
+ assertDidNotPushSamples(): void;
11
15
  assertDidPushMarkers(markers?: DurationMarker[]): void;
12
16
  assertDidNotPushMarkers(): void;
13
17
  }
@@ -4,19 +4,36 @@ const test_utils_1 = require("@sprucelabs/test-utils");
4
4
  class MockTimeMarkerOutlet {
5
5
  constructor() {
6
6
  this.didPushMarkers = false;
7
+ this.didPushSamples = false;
7
8
  MockTimeMarkerOutlet.instance = this;
8
9
  }
9
10
  stop() { }
10
11
  destroy() { }
11
- pushSample(_sample) { }
12
+ pushSample(sample) {
13
+ var _a;
14
+ if (!this.didPushSamples) {
15
+ this.didPushSamples = true;
16
+ this.pushedSamples = [];
17
+ }
18
+ (_a = this.pushedSamples) === null || _a === void 0 ? void 0 : _a.push(sample);
19
+ }
12
20
  async pushMarkers(markers) {
13
21
  this.didPushMarkers = true;
14
- this.markers = markers;
22
+ this.pushedMarkers = markers;
23
+ }
24
+ assertDidPushSamples(samples) {
25
+ test_utils_1.assert.isTrue(this.didPushSamples, `Expected to have pushed samples but didn't. Try 'outlet.pushSample(...)'`);
26
+ if (samples) {
27
+ test_utils_1.assert.isEqualDeep(this.pushedSamples, samples);
28
+ }
29
+ }
30
+ assertDidNotPushSamples() {
31
+ test_utils_1.assert.isFalse(this.didPushSamples, `Expected to NOT have pushed samples but did. Try 'outlet.pushSample(...)'`);
15
32
  }
16
33
  assertDidPushMarkers(markers) {
17
34
  test_utils_1.assert.isTrue(this.didPushMarkers, `Expected to have pushed markers but didn't. Try 'outlet.pushMarkers(...)'`);
18
35
  if (markers) {
19
- test_utils_1.assert.isEqualDeep(this.markers, markers);
36
+ test_utils_1.assert.isEqualDeep(this.pushedMarkers, markers);
20
37
  }
21
38
  }
22
39
  assertDidNotPushMarkers() {
@@ -1 +1 @@
1
- {"version":3,"file":"MockTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/MockTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAG/C,MAAqB,oBAAoB;IAKxC;QAHQ,mBAAc,GAAG,KAAK,CAAA;QAI7B,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrC,CAAC;IAEM,IAAI,KAAU,CAAC;IACf,OAAO,KAAU,CAAC;IAClB,UAAU,CAAC,OAAkB,IAAS,CAAC;IAEvC,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACvB,CAAC;IAEM,oBAAoB,CAAC,OAA0B;QACrD,mBAAM,CAAC,MAAM,CACZ,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC3E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACb,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1C,CAAC;IACF,CAAC;IAEM,uBAAuB;QAC7B,mBAAM,CAAC,OAAO,CACb,IAAI,CAAC,cAAc,EACnB,4EAA4E,CAC5E,CAAA;IACF,CAAC;CACD;AAnCD,uCAmCC"}
1
+ {"version":3,"file":"MockTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/MockTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAG/C,MAAqB,oBAAoB;IAOxC;QALQ,mBAAc,GAAG,KAAK,CAAA;QAEtB,mBAAc,GAAG,KAAK,CAAA;QAI7B,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrC,CAAC;IAEM,IAAI,KAAU,CAAC;IACf,OAAO,KAAU,CAAC;IAElB,UAAU,CAAC,MAAiB;;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,MAAA,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAC7B,CAAC;IAEM,oBAAoB,CAAC,OAAqB;QAChD,mBAAM,CAAC,MAAM,CACZ,IAAI,CAAC,cAAc,EACnB,0EAA0E,CAC1E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACb,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACF,CAAC;IAEM,uBAAuB;QAC7B,mBAAM,CAAC,OAAO,CACb,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC3E,CAAA;IACF,CAAC;IAEM,oBAAoB,CAAC,OAA0B;QACrD,mBAAM,CAAC,MAAM,CACZ,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC3E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACb,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACF,CAAC;IAEM,uBAAuB;QAC7B,mBAAM,CAAC,OAAO,CACb,IAAI,CAAC,cAAc,EACnB,4EAA4E,CAC5E,CAAA;IACF,CAAC;CACD;AA9DD,uCA8DC"}
@@ -4,8 +4,7 @@ export default class SpyImplementsTimeMarkerOutlet implements TimeMarkerOutlet {
4
4
  pushSampleCalls: string[][];
5
5
  numStopCalls: number;
6
6
  numDestroyCalls: number;
7
- static Outlet(): SpyImplementsTimeMarkerOutlet;
8
- protected constructor();
7
+ constructor();
9
8
  pushMarkers(markers: DurationMarker[]): Promise<void>;
10
9
  pushSample(sample: string[]): void;
11
10
  stop(): void;
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class SpyImplementsTimeMarkerOutlet {
4
- static Outlet() {
5
- return new this();
6
- }
7
4
  constructor() {
8
5
  this.pushMarkersCalls = [];
9
6
  this.pushSampleCalls = [];
@@ -1 +1 @@
1
- {"version":3,"file":"SpyImplementsTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/SpyImplementsTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAEA,MAAqB,6BAA6B;IAM1C,MAAM,CAAC,MAAM;QACnB,OAAO,IAAI,IAAI,EAAE,CAAA;IAClB,CAAC;IAED;QACC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAEM,UAAU,CAAC,MAAgB;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,YAAY,EAAE,CAAA;IACpB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,eAAe,EAAE,CAAA;IACvB,CAAC;IAEM,QAAQ;QACd,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IACzB,CAAC;CACD;AAvCD,gDAuCC"}
1
+ {"version":3,"file":"SpyImplementsTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/SpyImplementsTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAEA,MAAqB,6BAA6B;IAMjD;QACC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAEM,UAAU,CAAC,MAAgB;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAEM,IAAI;QACV,IAAI,CAAC,YAAY,EAAE,CAAA;IACpB,CAAC;IAEM,OAAO;QACb,IAAI,CAAC,eAAe,EAAE,CAAA;IACvB,CAAC;IAEM,QAAQ;QACd,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IACzB,CAAC;CACD;AAnCD,gDAmCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "7.0.0",
3
+ "version": "7.1.1",
4
4
  "main": "build/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,7 @@ import {
2
2
  TimeMarkerOutlet,
3
3
  LslOutletOptions,
4
4
  DurationMarker,
5
+ TimeMarkerOutletConstructor,
5
6
  } from '../nodeLsl.types'
6
7
  import LslOutletImpl from './LslOutlet'
7
8
 
@@ -9,6 +10,8 @@ export default class TimeMarkerOutletImpl
9
10
  extends LslOutletImpl
10
11
  implements TimeMarkerOutlet
11
12
  {
13
+ public static Class?: TimeMarkerOutletConstructor
14
+
12
15
  private isPlaying: boolean = false
13
16
  private waitResolve?: () => void
14
17
  private timeout?: any
@@ -27,7 +30,6 @@ export default class TimeMarkerOutletImpl
27
30
  maxBuffered: 0,
28
31
  } as LslOutletOptions
29
32
 
30
- //@ts-ignore
31
33
  return new (this.Class ?? this)({
32
34
  ...defaultOptions,
33
35
  ...options,
@@ -27,7 +27,9 @@ export interface TimeMarkerOutlet extends LslOutlet {
27
27
  stop(): void
28
28
  }
29
29
 
30
- export type TimeMarkerOutletConstructor = new () => TimeMarkerOutlet
30
+ export type TimeMarkerOutletConstructor = new (
31
+ options: LslOutletOptions
32
+ ) => TimeMarkerOutlet
31
33
 
32
34
  export interface DurationMarker {
33
35
  name: string
@@ -4,7 +4,9 @@ import { DurationMarker, LslSample, TimeMarkerOutlet } from '..'
4
4
  export default class MockTimeMarkerOutlet implements TimeMarkerOutlet {
5
5
  public static instance: MockTimeMarkerOutlet
6
6
  private didPushMarkers = false
7
- private markers?: DurationMarker[]
7
+ private pushedMarkers?: DurationMarker[]
8
+ private didPushSamples = false
9
+ private pushedSamples?: LslSample[]
8
10
 
9
11
  public constructor() {
10
12
  MockTimeMarkerOutlet.instance = this
@@ -12,11 +14,36 @@ export default class MockTimeMarkerOutlet implements TimeMarkerOutlet {
12
14
 
13
15
  public stop(): void {}
14
16
  public destroy(): void {}
15
- public pushSample(_sample: LslSample): void {}
17
+
18
+ public pushSample(sample: LslSample): void {
19
+ if (!this.didPushSamples) {
20
+ this.didPushSamples = true
21
+ this.pushedSamples = []
22
+ }
23
+ this.pushedSamples?.push(sample)
24
+ }
16
25
 
17
26
  public async pushMarkers(markers: DurationMarker[]): Promise<void> {
18
27
  this.didPushMarkers = true
19
- this.markers = markers
28
+ this.pushedMarkers = markers
29
+ }
30
+
31
+ public assertDidPushSamples(samples?: LslSample[]) {
32
+ assert.isTrue(
33
+ this.didPushSamples,
34
+ `Expected to have pushed samples but didn't. Try 'outlet.pushSample(...)'`
35
+ )
36
+
37
+ if (samples) {
38
+ assert.isEqualDeep(this.pushedSamples, samples)
39
+ }
40
+ }
41
+
42
+ public assertDidNotPushSamples() {
43
+ assert.isFalse(
44
+ this.didPushSamples,
45
+ `Expected to NOT have pushed samples but did. Try 'outlet.pushSample(...)'`
46
+ )
20
47
  }
21
48
 
22
49
  public assertDidPushMarkers(markers?: DurationMarker[]) {
@@ -26,7 +53,7 @@ export default class MockTimeMarkerOutlet implements TimeMarkerOutlet {
26
53
  )
27
54
 
28
55
  if (markers) {
29
- assert.isEqualDeep(this.markers, markers)
56
+ assert.isEqualDeep(this.pushedMarkers, markers)
30
57
  }
31
58
  }
32
59
 
@@ -6,11 +6,7 @@ export default class SpyImplementsTimeMarkerOutlet implements TimeMarkerOutlet {
6
6
  public numStopCalls: number
7
7
  public numDestroyCalls: number
8
8
 
9
- public static Outlet() {
10
- return new this()
11
- }
12
-
13
- protected constructor() {
9
+ public constructor() {
14
10
  this.pushMarkersCalls = []
15
11
  this.pushSampleCalls = []
16
12
  this.numStopCalls = 0