41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package httpapi
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"git.118im.com/im_team/im_workbench/internal/store"
|
|
)
|
|
|
|
func TestAttendanceCheckinPayloadReturnsJSONObjectFields(t *testing.T) {
|
|
now := time.Date(2026, 9, 18, 1, 27, 49, 0, time.UTC)
|
|
payload := attendanceCheckinPayload(store.AttendanceCheckin{
|
|
CheckinID: "attc_1",
|
|
Action: "check_in",
|
|
ClientTime: now,
|
|
ServerTime: now,
|
|
Result: "normal",
|
|
Location: `{"name":"当前位置","latitude":22.929670335639365}`,
|
|
Wifi: `{}`,
|
|
Device: `{"platform":"ios","device_id":"C7A76C6A-FC57-4CED-B1C1-CE5199944F8C"}`,
|
|
})
|
|
|
|
location, ok := payload["location"].(map[string]any)
|
|
if !ok {
|
|
t.Fatalf("location=%T, want map[string]any", payload["location"])
|
|
}
|
|
if location["name"] != "当前位置" {
|
|
t.Fatalf("location=%v", location)
|
|
}
|
|
if _, ok := payload["wifi"].(map[string]any); !ok {
|
|
t.Fatalf("wifi=%T, want map[string]any", payload["wifi"])
|
|
}
|
|
device, ok := payload["device"].(map[string]any)
|
|
if !ok {
|
|
t.Fatalf("device=%T, want map[string]any", payload["device"])
|
|
}
|
|
if device["platform"] != "ios" {
|
|
t.Fatalf("device=%v", device)
|
|
}
|
|
}
|