Skip to content

Commit 082b1d8

Browse files
committed
fix: type mismatch and confusing ui for enabling/disabling ab players
1 parent 4a1c882 commit 082b1d8

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

packages/job-worker/src/playout/abPlayback/__tests__/routeSetDisabling.spec.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,35 @@ describe('route set disabling ab players', () => {
2626
expect(result).toEqual(DEFAULT_PLAYERS)
2727
})
2828

29+
test('mismatch of playerId types', () => {
30+
const routesets: Record<string, StudioRouteSet> = {
31+
route1: {
32+
name: '',
33+
active: false,
34+
behavior: StudioRouteBehavior.TOGGLE,
35+
routes: [],
36+
abPlayers: [
37+
{
38+
poolName: POOL_NAME,
39+
playerId: '1', // because ui field is always a string
40+
},
41+
],
42+
},
43+
}
44+
45+
const players: ABPlayerDefinition[] = [
46+
{
47+
playerId: 1, // number because blueprint defined it as such
48+
},
49+
{ playerId: 2 },
50+
]
51+
52+
const result = runDisablePlayersFiltering(routesets, players)
53+
54+
const expectedPlayers = players.filter((p) => p.playerId !== 1)
55+
expect(result).toEqual(expectedPlayers)
56+
})
57+
2958
describe('single routeset per player', () => {
3059
const ROUTESETS_SEPARATE: Record<string, StudioRouteSet> = {
3160
pl1: {

packages/job-worker/src/playout/abPlayback/routeSetDisabling.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import type { ABPlayerDefinition, AbPlayerId } from '@sofie-automation/blueprints-integration'
1+
import type { ABPlayerDefinition } from '@sofie-automation/blueprints-integration'
22
import type { StudioRouteSet } from '@sofie-automation/corelib/dist/dataModel/Studio'
33
import { logger } from '../../logging'
44

55
/**
66
* Map<poolName, Map<playerId, disablePlayer>>
7+
* Note: this explicitly uses a string for the playerId, to avoid issues with types for values from the ui
78
*/
8-
type MembersOfRouteSets = Map<string, Map<AbPlayerId, boolean>>
9+
type MembersOfRouteSets = Map<string, Map<string, boolean>>
910

1011
export function findPlayersInRouteSets(routeSets: Record<string, StudioRouteSet>): MembersOfRouteSets {
1112
const routeSetEnabledPlayers: MembersOfRouteSets = new Map()
@@ -18,8 +19,8 @@ export function findPlayersInRouteSets(routeSets: Record<string, StudioRouteSet>
1819
}
1920

2021
// Make sure player is marked as enabled
21-
const currentState = poolEntry.get(abPlayer.playerId)
22-
poolEntry.set(abPlayer.playerId, currentState || routeSet.active)
22+
const currentState = poolEntry.get(String(abPlayer.playerId))
23+
poolEntry.set(String(abPlayer.playerId), currentState || routeSet.active)
2324
}
2425
}
2526
return routeSetEnabledPlayers
@@ -35,7 +36,7 @@ export function abPoolFilterDisabled(
3536

3637
// Filter out any disabled players:
3738
return players.filter((player) => {
38-
const playerState = poolRouteSetEnabledPlayers.get(player.playerId)
39+
const playerState = poolRouteSetEnabledPlayers.get(String(player.playerId))
3940
if (playerState === false) {
4041
logger.silly(`AB Pool ${poolName} playerId : ${player.playerId} are disabled`)
4142
return false

packages/webui/src/client/ui/Settings/Studio/Routings/RouteSetAbPlayers.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ function AbPlayerRow({
115115
</button>
116116
<div className="properties-grid">
117117
<LabelAndOverrides
118-
label={t('Pool PlayerId')}
118+
label={t('Pool name')}
119119
item={player}
120-
itemKey={'playerId'}
120+
itemKey={'poolName'}
121121
opPrefix={player.id}
122122
overrideHelper={tableOverrideHelper}
123123
>
@@ -131,9 +131,9 @@ function AbPlayerRow({
131131
)}
132132
</LabelAndOverrides>
133133
<LabelAndOverrides
134-
label={t('Pool name')}
134+
label={t('Pool PlayerId')}
135135
item={player}
136-
itemKey={'poolName'}
136+
itemKey={'playerId'}
137137
opPrefix={player.id}
138138
overrideHelper={tableOverrideHelper}
139139
>

0 commit comments

Comments
 (0)