69 lines
1.9 KiB
Go
69 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"math"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestTestIdentitiesAreOnlyMappedInMemory(t *testing.T) {
|
|
dir, sourceID := fixture(t)
|
|
original, err := loadSnapshots(dir, sourceID)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
mapped, err := testSnapshots(original)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if mapped.dispatcherID != sourceID || mapped.tenantID != 90000+original.tenantID {
|
|
t.Fatal("wrong identity convention")
|
|
}
|
|
if _, ok := mapped.tasks["test-1"]; !ok {
|
|
t.Fatal("task not prefixed")
|
|
}
|
|
if _, ok := mapped.tasks["1"]; ok {
|
|
t.Fatal("formal task ID still active")
|
|
}
|
|
var task map[string]any
|
|
json.Unmarshal(mapped.tasks["test-1"], &task)
|
|
if task["tenant_id"] != float64(90000+original.tenantID) || task["task_id"] != "test-1" {
|
|
t.Fatal(task)
|
|
}
|
|
if !bytes.Equal(mapped.sip, original.sip) || !bytes.Equal(mapped.providers, original.providers) {
|
|
t.Fatal("SIP/provider config changed")
|
|
}
|
|
after, err := loadSnapshots(dir, sourceID)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for path, want := range map[string][]byte{"sip.json": original.sip, "providers.json": original.providers, "quota.json": original.quota, "tasks/1.json": original.tasks["1"]} {
|
|
got, e := os.ReadFile(filepath.Join(dir, path))
|
|
if e != nil || !bytes.Equal(want, got) {
|
|
t.Fatalf("input changed: %s", path)
|
|
}
|
|
}
|
|
if !bytes.Equal(after.tasks["1"], original.tasks["1"]) {
|
|
t.Fatal("source mutated")
|
|
}
|
|
original.tenantID = math.MaxInt64
|
|
if _, err = testSnapshots(original); err == nil {
|
|
t.Fatal("overflow accepted")
|
|
}
|
|
original.tenantID = 1
|
|
original.tasks["test-1"] = original.tasks["1"]
|
|
if _, err = testSnapshots(original); err == nil {
|
|
t.Fatal("colliding task prefix accepted")
|
|
}
|
|
}
|
|
|
|
func TestFeedbackQueueDoesNotConsumeFormalQueue(t *testing.T) {
|
|
const id = "c046b893-8628-4589-ae50-619d049248a6"
|
|
if got := feedbackQueueName(id); got != "agent-call.saas.test.d."+id+".v1" {
|
|
t.Fatal(got)
|
|
}
|
|
}
|