Files
OwnCord/Server/ws/export_test.go
T
jevb 8889faddef feat: add buildVoiceOffer and buildVoiceICE message builders
Add two new server-to-client WebSocket message builders following the
existing buildVoiceAnswer pattern. Expose them via export_test.go
wrappers and cover with ws_test package tests (TDD: RED → GREEN).
2026-03-18 03:44:38 +01:00

54 lines
1.7 KiB
Go

// export_test.go exposes unexported functions and methods for use in external
// test packages (package ws_test). This file is compiled only during "go test".
package ws
import (
"encoding/json"
"time"
"github.com/owncord/server/db"
)
// BuildAuthOKForTest exposes Hub.buildAuthOK for external tests.
func (h *Hub) BuildAuthOKForTest(user *db.User, roleName string) []byte {
return h.buildAuthOK(user, roleName)
}
// BuildReadyForTest exposes Hub.buildReady for external tests.
func (h *Hub) BuildReadyForTest(database *db.DB, userID int64) ([]byte, error) {
return h.buildReady(database, userID)
}
// GetCachedSettingsForTest exposes Hub.getCachedSettings for external tests.
func (h *Hub) GetCachedSettingsForTest() (string, string) {
return h.getCachedSettings()
}
// ExpireSettingsCacheForTest forces the settings cache to appear stale so that
// the next call to getCachedSettings triggers a DB refresh.
func (h *Hub) ExpireSettingsCacheForTest() {
h.settingsMu.Lock()
defer h.settingsMu.Unlock()
h.settingsLastUpdate = time.Time{} // zero time — always older than any TTL
}
// ParseChannelIDForTest exposes parseChannelID for external tests.
func ParseChannelIDForTest(payload json.RawMessage) (int64, error) {
return parseChannelID(payload)
}
// BuildJSONForTest exposes buildJSON for external tests.
func BuildJSONForTest(v any) []byte {
return buildJSON(v)
}
// BuildVoiceOfferForTest exposes buildVoiceOffer for external tests.
func BuildVoiceOfferForTest(channelID int64, sdp string) []byte {
return buildVoiceOffer(channelID, sdp)
}
// BuildVoiceICEForTest exposes buildVoiceICE for external tests.
func BuildVoiceICEForTest(channelID int64, candidate any) []byte {
return buildVoiceICE(channelID, candidate)
}