mautrix-go/event/powerlevels_ephemeral_test.go
batuhan içöz fef4326fbc
Some checks are pending
Go / Lint (latest) (push) Waiting to run
Go / Build (old, libolm) (push) Waiting to run
Go / Build (latest, libolm) (push) Waiting to run
Go / Build (old, goolm) (push) Waiting to run
Go / Build (latest, goolm) (push) Waiting to run
client,event,bridgev2: add support for Beeper's custom ephemeral events and AI stream events (#457)
2026-03-04 01:38:50 +01:00

67 lines
2 KiB
Go

// Copyright (c) 2026 Tulir Asokan
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
package event_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"maunium.net/go/mautrix/event"
)
func TestPowerLevelsEventContent_BeeperEphemeralDefaultFallsBackToEventsDefault(t *testing.T) {
pl := &event.PowerLevelsEventContent{
EventsDefault: 45,
}
assert.Equal(t, 45, pl.BeeperEphemeralDefault())
override := 60
pl.BeeperEphemeralDefaultPtr = &override
assert.Equal(t, 60, pl.BeeperEphemeralDefault())
}
func TestPowerLevelsEventContent_GetSetBeeperEphemeralLevel(t *testing.T) {
pl := &event.PowerLevelsEventContent{
EventsDefault: 25,
}
evtType := event.Type{Type: "com.example.ephemeral", Class: event.EphemeralEventType}
assert.Equal(t, 25, pl.GetBeeperEphemeralLevel(evtType))
pl.SetBeeperEphemeralLevel(evtType, 50)
assert.Equal(t, 50, pl.GetBeeperEphemeralLevel(evtType))
require.NotNil(t, pl.BeeperEphemeral)
assert.Equal(t, 50, pl.BeeperEphemeral[evtType.String()])
pl.SetBeeperEphemeralLevel(evtType, 25)
_, exists := pl.BeeperEphemeral[evtType.String()]
assert.False(t, exists)
}
func TestPowerLevelsEventContent_CloneCopiesBeeperEphemeralFields(t *testing.T) {
override := 70
pl := &event.PowerLevelsEventContent{
EventsDefault: 35,
BeeperEphemeral: map[string]int{"com.example.ephemeral": 90},
BeeperEphemeralDefaultPtr: &override,
}
cloned := pl.Clone()
require.NotNil(t, cloned)
require.NotNil(t, cloned.BeeperEphemeralDefaultPtr)
assert.Equal(t, 70, *cloned.BeeperEphemeralDefaultPtr)
assert.Equal(t, 90, cloned.BeeperEphemeral["com.example.ephemeral"])
cloned.BeeperEphemeral["com.example.ephemeral"] = 99
*cloned.BeeperEphemeralDefaultPtr = 71
assert.Equal(t, 90, pl.BeeperEphemeral["com.example.ephemeral"])
assert.Equal(t, 70, *pl.BeeperEphemeralDefaultPtr)
}