save_omnibox_initial_behavior_test.go RawHistoryFolder
1package usecase
2
3import (
4 "context"
5 "testing"
6
7 portmocks "github.com/bnema/dumber/internal/application/port/mocks"
8 "github.com/bnema/dumber/internal/domain/entity"
9)
10
11func TestSaveOmniboxInitialBehaviorUseCase_AllowsRecent(t *testing.T) {
12 ctx := context.Background()
13 saver := portmocks.NewMockOmniboxPreferencesSaver(t)
14 saver.EXPECT().SaveOmniboxInitialBehavior(ctx, entity.OmniboxInitialBehaviorRecent).Return(nil).Once()
15 uc := NewSaveOmniboxInitialBehaviorUseCase(saver)
16
17 err := uc.Execute(ctx, entity.OmniboxInitialBehaviorRecent)
18 if err != nil {
19 t.Fatalf("Execute() unexpected error: %v", err)
20 }
21}
22
23func TestSaveOmniboxInitialBehaviorUseCase_AllowsTrimmedMostVisited(t *testing.T) {
24 ctx := context.Background()
25 saver := portmocks.NewMockOmniboxPreferencesSaver(t)
26 saver.EXPECT().SaveOmniboxInitialBehavior(ctx, entity.OmniboxInitialBehaviorMostVisited).Return(nil).Once()
27 uc := NewSaveOmniboxInitialBehaviorUseCase(saver)
28
29 err := uc.Execute(ctx, entity.OmniboxInitialBehavior(" most_visited \t"))
30 if err != nil {
31 t.Fatalf("Execute() unexpected error: %v", err)
32 }
33}
34
35func TestSaveOmniboxInitialBehaviorUseCase_RejectsNone(t *testing.T) {
36 saver := portmocks.NewMockOmniboxPreferencesSaver(t)
37 uc := NewSaveOmniboxInitialBehaviorUseCase(saver)
38
39 err := uc.Execute(context.Background(), entity.OmniboxInitialBehaviorNone)
40 if err == nil {
41 t.Fatal("Execute() error = nil, want non-nil")
42 }
43 if got := err.Error(); got != "omnibox.initial_behavior must be one of: recent, most_visited" &&
44 got != "omnibox.initial_behavior must be one of: recent, most_visited (got: none)" {
45 t.Fatalf("Execute() error = %q, want validation error", got)
46 }
47}
48
49func TestSaveOmniboxInitialBehaviorUseCase_RejectsEmptyString(t *testing.T) {
50 saver := portmocks.NewMockOmniboxPreferencesSaver(t)
51 uc := NewSaveOmniboxInitialBehaviorUseCase(saver)
52
53 err := uc.Execute(context.Background(), entity.OmniboxInitialBehavior(""))
54 if err == nil {
55 t.Fatal("Execute() error = nil, want non-nil")
56 }
57 if got := err.Error(); got != "omnibox.initial_behavior must be one of: recent, most_visited" &&
58 got != "omnibox.initial_behavior must be one of: recent, most_visited (got: )" {
59 t.Fatalf("Execute() error = %q, want validation error", got)
60 }
61}
62
63func TestSaveOmniboxInitialBehaviorUseCase_NilSaverReturnsError(t *testing.T) {
64 uc := NewSaveOmniboxInitialBehaviorUseCase(nil)
65
66 err := uc.Execute(context.Background(), entity.OmniboxInitialBehaviorRecent)
67 if err == nil {
68 t.Fatal("Execute() error = nil, want non-nil")
69 }
70 if err.Error() != "omnibox preferences saver is nil" {
71 t.Fatalf("Execute() error = %q, want nil saver error", err.Error())
72 }
73}