Skip to content

Commit 0e249a1

Browse files
authored
fix: incorrect collections usage (#1740)
1 parent 58ca72d commit 0e249a1

5 files changed

Lines changed: 14 additions & 29 deletions

File tree

packages/webui/src/__mocks__/helpers/database.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import type {
3636
import {
3737
AdLibPieces,
3838
CoreSystem,
39-
Parts,
4039
Pieces,
4140
RundownBaselineAdLibPieces,
4241
RundownPlaylists,
@@ -46,6 +45,7 @@ import {
4645
ShowStyleVariants,
4746
Studios,
4847
} from '../../client/collections/index.js'
48+
import { UIParts } from '../../client/ui/Collections.js'
4949

5050
export enum LAYER_IDS {
5151
SOURCE_CAM0 = 'cam0',
@@ -369,7 +369,7 @@ export async function setupDefaultRundown(
369369
title: 'Part 0 0',
370370
expectedDurationWithTransition: undefined,
371371
}
372-
MongoMock.getInnerMockCollection(Parts).insert(part00)
372+
MongoMock.getInnerMockCollection(UIParts).insert(part00)
373373

374374
const piece000: Piece = {
375375
_id: protectString(rundownId + '_piece000'),
@@ -437,7 +437,7 @@ export async function setupDefaultRundown(
437437
title: 'Part 0 1',
438438
expectedDurationWithTransition: undefined,
439439
}
440-
MongoMock.getInnerMockCollection(Parts).insert(part01)
440+
MongoMock.getInnerMockCollection(UIParts).insert(part01)
441441

442442
const piece010: Piece = {
443443
_id: protectString(rundownId + '_piece010'),
@@ -477,7 +477,7 @@ export async function setupDefaultRundown(
477477
title: 'Part 1 0',
478478
expectedDurationWithTransition: undefined,
479479
}
480-
MongoMock.getInnerMockCollection(Parts).insert(part10)
480+
MongoMock.getInnerMockCollection(UIParts).insert(part10)
481481

482482
const part11: DBPart = {
483483
_id: protectString(rundownId + '_part1_1'),
@@ -488,7 +488,7 @@ export async function setupDefaultRundown(
488488
title: 'Part 1 1',
489489
expectedDurationWithTransition: undefined,
490490
}
491-
MongoMock.getInnerMockCollection(Parts).insert(part11)
491+
MongoMock.getInnerMockCollection(UIParts).insert(part11)
492492

493493
const part12: DBPart = {
494494
_id: protectString(rundownId + '_part1_2'),
@@ -499,7 +499,7 @@ export async function setupDefaultRundown(
499499
title: 'Part 1 2',
500500
expectedDurationWithTransition: undefined,
501501
}
502-
MongoMock.getInnerMockCollection(Parts).insert(part12)
502+
MongoMock.getInnerMockCollection(UIParts).insert(part12)
503503

504504
const segment2: DBSegment = {
505505
_id: protectString(rundownId + '_segment2'),

packages/webui/src/client/collections/index.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import type { DBTriggeredActions } from '@sofie-automation/meteor-lib/dist/colle
3030
import type { UserActionsLogItem } from '@sofie-automation/meteor-lib/dist/collections/UserActionsLog'
3131
import type { AdLibAction } from '@sofie-automation/corelib/dist/dataModel/AdlibAction'
3232
import type { AdLibPiece } from '@sofie-automation/corelib/dist/dataModel/AdLibPiece'
33-
import type { DBPart } from '@sofie-automation/corelib/dist/dataModel/Part'
3433
import type { Piece } from '@sofie-automation/corelib/dist/dataModel/Piece'
3534
import type { PieceInstance } from '@sofie-automation/corelib/dist/dataModel/PieceInstance'
3635
import type { DBRundown } from '@sofie-automation/corelib/dist/dataModel/Rundown'
@@ -39,7 +38,6 @@ import type { RundownBaselineAdLibItem } from '@sofie-automation/corelib/dist/da
3938
import type { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist/RundownPlaylist'
4039
import type { DBSegment } from '@sofie-automation/corelib/dist/dataModel/Segment'
4140
import type { DBNotificationObj } from '@sofie-automation/corelib/dist/dataModel/Notifications'
42-
import type { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js'
4341

4442
export const AdLibActions = createSyncReadOnlyMongoCollection<AdLibAction>(CollectionName.AdLibActions)
4543

@@ -75,10 +73,6 @@ export const PackageContainerStatuses = createSyncReadOnlyMongoCollection<Packag
7573
CollectionName.PackageContainerStatuses
7674
)
7775

78-
export const PartInstances = createSyncReadOnlyMongoCollection<PartInstance>(CollectionName.PartInstances)
79-
80-
export const Parts = createSyncReadOnlyMongoCollection<DBPart>(CollectionName.Parts)
81-
8276
export const PeripheralDevices = createSyncMongoCollection<PeripheralDevice>(CollectionName.PeripheralDevices)
8377

8478
export const PieceInstances = createSyncReadOnlyMongoCollection<PieceInstance>(CollectionName.PieceInstances)

packages/webui/src/client/lib/__tests__/rundown.test.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,20 @@ import { protectString, unprotectString } from '@sofie-automation/corelib/dist/p
1111
import { PieceLifespan } from '@sofie-automation/blueprints-integration'
1212
import type { PieceInstance } from '@sofie-automation/corelib/dist/dataModel/PieceInstance'
1313
import type { RundownPlaylistId } from '@sofie-automation/corelib/dist/dataModel/Ids'
14-
import { PartInstances, PieceInstances, Pieces, RundownPlaylists } from '../../collections/index.js'
14+
import { PieceInstances, Pieces, RundownPlaylists } from '../../collections/index.js'
1515
import { MongoMock } from '../../../__mocks__/mongo.js'
1616
import { RundownPlaylistCollectionUtil } from '../../collections/rundownPlaylistUtil.js'
1717
import { RundownPlaylistClientUtil } from '../rundownPlaylistUtil.js'
1818
import type { UIStudio } from '@sofie-automation/corelib/src/dataModel/Studio.js'
1919
import type { PartInstance } from '@sofie-automation/corelib/src/dataModel/PartInstance.js'
2020
import { convertToUIShowStyleBase } from '@sofie-automation/corelib/src/playout/stateCacheResolver.js'
21+
import { UIPartInstances } from '../../ui/Collections.js'
2122

2223
const mockRundownPlaylistsCollection = MongoMock.getInnerMockCollection(RundownPlaylists)
23-
const mockPartInstancesCollection = MongoMock.getInnerMockCollection(PartInstances)
24+
const mockPartInstancesCollection = MongoMock.getInnerMockCollection(UIPartInstances)
2425
const mockPieceInstancesCollection = MongoMock.getInnerMockCollection(PieceInstances)
2526
const mockPiecesCollection = MongoMock.getInnerMockCollection(Pieces)
2627

27-
// This is a hack, the tests should be rewritten to not use methods unrelated to the testee
28-
jest.mock('../../ui/Collections', () => {
29-
const mockClientCollections = jest.requireActual('../../ui/Collections')
30-
const mockLibCollections = jest.requireActual('../../collections/index')
31-
return {
32-
...mockClientCollections,
33-
UIParts: mockLibCollections.Parts, // for most purposes they're equivalent
34-
UIPartInstances: mockLibCollections.PartInstances, // for most purposes they're equivalent
35-
}
36-
})
37-
3828
describe('client/lib/rundown', () => {
3929
let env: DefaultEnvironment
4030
let playlistId: RundownPlaylistId

packages/webui/src/client/lib/triggers/triggersContext.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { Tracker } from 'meteor/tracker'
1111
import {
1212
AdLibActions,
1313
AdLibPieces,
14-
Parts,
1514
RundownBaselineAdLibActions,
1615
RundownBaselineAdLibPieces,
1716
RundownPlaylists,
@@ -27,6 +26,7 @@ import type { ReactiveVar as MeteorReactiveVar } from 'meteor/reactive-var'
2726
import type { TriggerReactiveVar } from '@sofie-automation/meteor-lib/dist/triggers/reactive-var'
2827
import type { FindOptions, MongoQuery } from '@sofie-automation/corelib/dist/mongo'
2928
import { memoizedIsolatedAutorunAsync } from '../memoizedIsolatedAutorun.js'
29+
import { UIParts } from '../../ui/Collections.js'
3030

3131
class UiTriggersCollectionWrapper<
3232
DBInterface extends { _id: ProtectedString<any> },
@@ -67,7 +67,7 @@ export const UiTriggersContext: TriggersContext = {
6767

6868
AdLibActions: new UiTriggersCollectionWrapper(AdLibActions),
6969
AdLibPieces: new UiTriggersCollectionWrapper(AdLibPieces),
70-
Parts: new UiTriggersCollectionWrapper(Parts),
70+
Parts: new UiTriggersCollectionWrapper(UIParts),
7171
RundownBaselineAdLibActions: new UiTriggersCollectionWrapper(RundownBaselineAdLibActions),
7272
RundownBaselineAdLibPieces: new UiTriggersCollectionWrapper(RundownBaselineAdLibPieces),
7373
RundownPlaylists: new UiTriggersCollectionWrapper(RundownPlaylists),

packages/webui/src/client/ui/RundownView/RundownHeader/HeaderFreezeFrameIcon.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ import type { PartInstanceId } from '@sofie-automation/corelib/dist/dataModel/Id
22
import { FreezeFrameIcon } from '../../../lib/ui/icons/freezeFrame'
33
import { useTiming, TimingTickResolution, TimingDataResolution } from '../RundownTiming/withTiming'
44
import { useTracker } from '../../../lib/ReactMeteorData/ReactMeteorData'
5-
import { PartInstances, PieceInstances } from '../../../collections'
5+
import { PieceInstances } from '../../../collections'
66
import type { VTContent } from '@sofie-automation/blueprints-integration'
7+
import { UIPartInstances } from '../../Collections'
78

89
export function HeaderFreezeFrameIcon({ partInstanceId }: { partInstanceId: PartInstanceId }): JSX.Element | null {
910
const timingDurations = useTiming(TimingTickResolution.Synced, TimingDataResolution.Synced)
1011

1112
const freezeFrameIcon = useTracker(
1213
() => {
13-
const partInstance = PartInstances.findOne(partInstanceId)
14+
const partInstance = UIPartInstances.findOne(partInstanceId)
1415
if (!partInstance) return null
1516

1617
// We use the exact display duration from the timing context just like VTSourceRenderer does.

0 commit comments

Comments
 (0)