webrtc_permission_indicator_state_test.go RawHistoryFolder
1package component
2
3import (
4 "testing"
5
6 "github.com/bnema/dumber/internal/domain/entity"
7 "github.com/stretchr/testify/assert"
8)
9
10func TestWebRTCSummaryState_RequestingWins(t *testing.T) {
11 states := map[entity.PermissionType]webrtcPermissionState{
12 entity.PermissionTypeMicrophone: webrtcPermissionStateAllowed,
13 entity.PermissionTypeCamera: webrtcPermissionStateRequesting,
14 }
15
16 summary := summarizeWebRTCPermissionState(states)
17 assert.Equal(t, webrtcPermissionStateRequesting, summary)
18}
19
20func TestWebRTCSummaryState_BlockedBeatsAllowed(t *testing.T) {
21 states := map[entity.PermissionType]webrtcPermissionState{
22 entity.PermissionTypeMicrophone: webrtcPermissionStateAllowed,
23 entity.PermissionTypeCamera: webrtcPermissionStateBlocked,
24 }
25
26 summary := summarizeWebRTCPermissionState(states)
27 assert.Equal(t, webrtcPermissionStateBlocked, summary)
28}
29
30func TestWebRTCSummaryState_AllowedWhenOnlyAllowed(t *testing.T) {
31 states := map[entity.PermissionType]webrtcPermissionState{
32 entity.PermissionTypeDisplay: webrtcPermissionStateAllowed,
33 }
34
35 summary := summarizeWebRTCPermissionState(states)
36 assert.Equal(t, webrtcPermissionStateAllowed, summary)
37}
38
39func TestWebRTCSummaryState_IdleWhenEmpty(t *testing.T) {
40 assert.Equal(t, webrtcPermissionStateIdle, summarizeWebRTCPermissionState(nil))
41 assert.Equal(t, webrtcPermissionStateIdle, summarizeWebRTCPermissionState(map[entity.PermissionType]webrtcPermissionState{}))
42}
43
44func TestWebRTCSummaryState_IdleWhenAllIdle(t *testing.T) {
45 states := map[entity.PermissionType]webrtcPermissionState{
46 entity.PermissionTypeMicrophone: webrtcPermissionStateIdle,
47 entity.PermissionTypeCamera: webrtcPermissionStateIdle,
48 }
49
50 assert.Equal(t, webrtcPermissionStateIdle, summarizeWebRTCPermissionState(states))
51}
52
53func TestWebRTCShouldShowIndicator(t *testing.T) {
54 assert.False(t, shouldShowWebRTCPermissionIndicator(nil))
55 assert.False(t, shouldShowWebRTCPermissionIndicator(map[entity.PermissionType]webrtcPermissionState{
56 entity.PermissionTypeMicrophone: webrtcPermissionStateIdle,
57 }))
58 assert.True(t, shouldShowWebRTCPermissionIndicator(map[entity.PermissionType]webrtcPermissionState{
59 entity.PermissionTypeMicrophone: webrtcPermissionStateAllowed,
60 }))
61}