Changes
6 changed files (+97/-4)
-
-
@@ -25,6 +25,12 @@ return &Workspace{hasSnapshot: false, eventSeq: nil, Projection: &workspace.Workspace{ Abbreviations: &workspace.Workspace_Abbreviations{ DayOff: proto.String("公休"), Worked: proto.String("出勤"), SkipWork: proto.String("欠勤"), PaidLeave: proto.String("年休"), }, NumberOfAdmins: proto.Uint32(0), }, }
-
@@ -75,6 +81,22 @@ case *workspaceEventsv1.Event_AdminAccessRevoked:p.Projection.NumberOfAdmins = proto.Uint32(max(0, *p.Projection.NumberOfAdmins-1)) case *workspaceEventsv1.Event_WorkspaceDisplayNameSet: p.Projection.DisplayName = v.WorkspaceDisplayNameSet.DisplayName case *workspaceEventsv1.Event_AbbreviationsConfigured: if v.AbbreviationsConfigured.GetDayOff() != "" { p.Projection.Abbreviations.DayOff = v.AbbreviationsConfigured.DayOff } if v.AbbreviationsConfigured.GetWorked() != "" { p.Projection.Abbreviations.Worked = v.AbbreviationsConfigured.Worked } if v.AbbreviationsConfigured.GetSkipWork() != "" { p.Projection.Abbreviations.SkipWork = v.AbbreviationsConfigured.SkipWork } if v.AbbreviationsConfigured.GetPaidLeave() != "" { p.Projection.Abbreviations.PaidLeave = v.AbbreviationsConfigured.PaidLeave } } p.eventSeq = &events[i].Seq
-
-
-
@@ -68,3 +68,48 @@ if p.Projection.GetDisplayName() != "Foo Bar" {t.Errorf("Expected \"Foo Bar\", got \"%s\"", p.Projection.GetDisplayName()) } } func TestDefaultAbbreviationsSet(t *testing.T) { logger := slog.New(slog.NewTextHandler(io.Discard, nil)) db, err := sql.Open("sqlite", ":memory:") if err != nil { t.Fatal(err) } core, err := core.New(db, logger) if err != nil { t.Fatal(err) } tx, err := core.DB.Begin() if err != nil { t.Fatal(err) } p, err := projection.GetWorkspace(tx) if err != nil { t.Fatal(err) } if err := event.UpdateProjections(tx, p); err != nil { t.Fatal(err) } abbr := p.Projection.GetAbbreviations() if abbr.GetDayOff() == "" { t.Error("day_off has no default abbreviation") } if abbr.GetWorked() == "" { t.Error("worked has no default abbreviation") } if abbr.GetSkipWork() == "" { t.Error("skip_work has no default abbreviation") } if abbr.GetPaidLeave() == "" { t.Error("paid_leave has no default abbreviation") } }
-
-
-
@@ -138,3 +138,15 @@ },}, } } func ConfigureAbbreviations(abbr *workspaceEvent.AbbreviationsConfigured) *eventV1.Event { return &eventV1.Event{ Event: &eventV1.Event_WorkspaceEvent{ WorkspaceEvent: &workspaceEvent.Event{ Event: &workspaceEvent.Event_AbbreviationsConfigured{ AbbreviationsConfigured: abbr, }, }, }, } }
-
-
-
@@ -93,10 +93,7 @@ }return connect.NewResponse(&workspaceV2.GetResponse{ Result: &workspaceV2.GetResponse_Ok{ Ok: &workspaceV2.Workspace{ DisplayName: workspace.Projection.DisplayName, HasAdmin: proto.Bool(workspace.Projection.GetNumberOfAdmins() > 0), }, Ok: projectionWorkspaceToMessage(workspace.Projection), }, }), nil }
-
-
-
@@ -46,3 +46,16 @@ IsAdmin: p.IsAdmin,Permissions: &permissions, } } func projectionWorkspaceToMessage(p *projection.Workspace) *workspaceV2.Workspace { return &workspaceV2.Workspace{ DisplayName: p.DisplayName, HasAdmin: proto.Bool(p.GetNumberOfAdmins() > 0), Abbreviations: &workspaceV2.Abbreviations{ Dayoff: p.Abbreviations.DayOff, Worked: p.Abbreviations.Worked, SkipWork: p.Abbreviations.SkipWork, PaidLeave: p.Abbreviations.PaidLeave, }, } }
-
-
-
@@ -41,6 +41,10 @@if v.Ok.GetDisplayName() != "名称未設定" { t.Errorf("Expected 名称未設定, got %s", v.Ok.GetDisplayName()) } if v.Ok.GetAbbreviations().GetPaidLeave() == "" { t.Error("Expected default paid_leave, got empty") } } func TestGetRejectUnauthorizedRequest(t *testing.T) {
-