Skip to content

Commit a7df01f

Browse files
committed
wip: test
1 parent 76a40f2 commit a7df01f

File tree

26 files changed

+93
-30
lines changed

26 files changed

+93
-30
lines changed

meteor/server/api/deviceTriggers/RundownContentObserver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
rundownPlaylistFieldSpecifier,
2424
segmentFieldSpecifier,
2525
} from './reactiveContentCache'
26-
import { waitForAllObserversReady } from '../../publications/lib'
26+
import { waitForAllObserversReady } from '../../publications/lib/lib'
2727

2828
const REACTIVITY_DEBOUNCE = 20
2929

meteor/server/api/rest/v0/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import * as _ from 'underscore'
88
import { Meteor } from 'meteor/meteor'
99
import { MeteorMethodSignatures } from '../../../methods'
1010
import { MeteorPubSub } from '@sofie-automation/meteor-lib/dist/api/pubsub'
11-
import { MeteorPublications, MeteorPublicationSignatures } from '../../../publications/lib'
11+
import { MeteorPublications, MeteorPublicationSignatures } from '../../../publications/lib/lib'
1212
import { UserActionAPIMethods } from '@sofie-automation/meteor-lib/dist/api/userActions'
1313
import { logger } from '../../../logging'
1414
import { ClientAPI } from '@sofie-automation/meteor-lib/dist/api/client'

meteor/server/lib/customPublication/optimizedObserverBase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { logger } from '../../logging'
99
import { ReactiveCacheCollection } from '../../publications/lib/ReactiveCacheCollection'
1010
import { LiveQueryHandle, lazyIgnore } from '../lib'
1111
import { CustomPublish, CustomPublishChanges } from './publish'
12-
import { waitForAllObserversReady } from '../../publications/lib'
12+
import { waitForAllObserversReady } from '../../publications/lib/lib'
1313

1414
const apmNamespace = 'optimizedObserver'
1515

meteor/server/lib/customPublication/publish.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { UserId } from '@sofie-automation/corelib/dist/dataModel/Ids'
22
import { Meteor } from 'meteor/meteor'
33
import { AllPubSubTypes } from '@sofie-automation/meteor-lib/dist/api/pubsub'
44
import { ProtectedString, unprotectString } from '../tempLib'
5-
import { PublishDocType, SubscriptionContext, meteorPublishUnsafe } from '../../publications/lib'
5+
import { PublishDocType, SubscriptionContext, meteorPublishUnsafe } from '../../publications/lib/lib'
66

77
export interface CustomPublishChanges<T extends { _id: ProtectedString<any> }> {
88
added: Array<T>

meteor/server/publications/_publications.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Meteor } from 'meteor/meteor'
2-
import './lib'
2+
import './lib/lib'
33

44
import './buckets'
55
import './blueprintUpgradeStatus/publication'
@@ -28,7 +28,7 @@ import './mountedTriggers'
2828
import './deviceTriggersPreview'
2929

3030
import { AllPubSubNames } from '@sofie-automation/meteor-lib/dist/api/pubsub'
31-
import { MeteorPublications } from './lib'
31+
import { MeteorPublications } from './lib/lib'
3232
import { logger } from '../logging'
3333

3434
// Ensure all the publications were registered at startup

meteor/server/publications/blueprintUpgradeStatus/upgradesContentObserver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
studioFieldSpecifier,
88
} from './reactiveContentCache'
99
import { Blueprints, ShowStyleBases, Studios } from '../../collections'
10-
import { waitForAllObserversReady } from '../lib'
10+
import { waitForAllObserversReady } from '../lib/lib'
1111

1212
export class UpgradesContentObserver {
1313
readonly #cache: ContentCache

meteor/server/publications/buckets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { FindOptions } from '@sofie-automation/meteor-lib/dist/collections/lib'
22
import { BucketSecurity } from '../security/buckets'
3-
import { meteorPublish } from './lib'
3+
import { meteorPublish } from './lib/lib'
44
import { MeteorPubSub } from '@sofie-automation/meteor-lib/dist/api/pubsub'
55
import { Bucket } from '@sofie-automation/meteor-lib/dist/collections/Buckets'
66
import { StudioReadAccess } from '../security/studio'
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { Meteor } from 'meteor/meteor'
2+
import { waitForAllObserversReady } from '../lib'
3+
import { sleep } from '@sofie-automation/shared-lib/dist/lib/lib'
4+
5+
describe('waitForAllObserversReady', () => {
6+
// beforeEach(() => {
7+
// jest.useFakeTimers()
8+
// })
9+
10+
it('no observers', async () => {
11+
await expect(waitForAllObserversReady([])).resolves.toHaveLength(0)
12+
})
13+
14+
async function createFakeObserver(waitTime: number, stopFn: () => void): Promise<Meteor.LiveQueryHandle> {
15+
await sleep(waitTime)
16+
17+
return {
18+
stop: stopFn,
19+
}
20+
}
21+
22+
async function createBadObserver(waitTime: number): Promise<Meteor.LiveQueryHandle> {
23+
await sleep(waitTime)
24+
25+
throw new Error('Some error')
26+
}
27+
28+
function stopAll(observers: Meteor.LiveQueryHandle[]) {
29+
observers.forEach((o) => o.stop())
30+
}
31+
32+
it('multiple good observers', async () => {
33+
const stopFn = jest.fn()
34+
35+
const res = waitForAllObserversReady([
36+
createFakeObserver(10, stopFn),
37+
createFakeObserver(12, stopFn),
38+
createFakeObserver(10, stopFn),
39+
createFakeObserver(8, stopFn),
40+
])
41+
await expect(res).resolves.toHaveLength(4)
42+
43+
expect(stopFn).toHaveBeenCalledTimes(0)
44+
45+
stopAll(await res)
46+
expect(stopFn).toHaveBeenCalledTimes(4)
47+
})
48+
49+
it('multiple good with a bad observer', async () => {
50+
const stopFn = jest.fn()
51+
52+
const res = waitForAllObserversReady([
53+
createFakeObserver(10, stopFn),
54+
createFakeObserver(12, stopFn),
55+
createBadObserver(10),
56+
createFakeObserver(8, stopFn),
57+
])
58+
await expect(res).rejects.toThrow('Some error')
59+
60+
// Successful ones should be stopped
61+
expect(stopFn).toHaveBeenCalledTimes(3)
62+
})
63+
})
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Meteor, Subscription } from 'meteor/meteor'
22
import { AllPubSubCollections, AllPubSubTypes } from '@sofie-automation/meteor-lib/dist/api/pubsub'
3-
import { extractFunctionSignature } from '../lib'
3+
import { extractFunctionSignature } from '../../lib'
44
import { MongoQuery } from '@sofie-automation/corelib/dist/mongo'
5-
import { ResolvedCredentials, resolveCredentials } from '../security/lib/credentials'
6-
import { Settings } from '../Settings'
5+
import { ResolvedCredentials, resolveCredentials } from '../../security/lib/credentials'
6+
import { Settings } from '../../Settings'
77
import { PeripheralDevice } from '@sofie-automation/corelib/dist/dataModel/PeripheralDevice'
88
import { MongoCursor } from '@sofie-automation/meteor-lib/dist/collections/lib'
99
import {
@@ -12,9 +12,9 @@ import {
1212
ShowStyleBaseId,
1313
UserId,
1414
} from '@sofie-automation/corelib/dist/dataModel/Ids'
15-
import { protectStringObject } from '../lib/tempLib'
15+
import { protectStringObject } from '../../lib/tempLib'
1616
import { DBShowStyleBase } from '@sofie-automation/corelib/dist/dataModel/ShowStyleBase'
17-
import { PeripheralDevices, ShowStyleBases } from '../collections'
17+
import { PeripheralDevices, ShowStyleBases } from '../../collections'
1818
import { MetricsGauge } from '@sofie-automation/corelib/dist/prometheus'
1919

2020
export const MeteorPublicationSignatures: { [key: string]: string[] } = {}

meteor/server/publications/lib/observerGroup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ManualPromise, createManualPromise, getRandomString } from '@sofie-automation/corelib/dist/lib'
22
import { Meteor } from 'meteor/meteor'
33
import { LiveQueryHandle, lazyIgnore } from '../../lib/lib'
4-
import { waitForAllObserversReady } from '../lib'
4+
import { waitForAllObserversReady } from './lib'
55

66
export interface ReactiveMongoObserverGroupHandle extends LiveQueryHandle {
77
/**

0 commit comments

Comments
 (0)