1- package goaster_test
1+ package goaster
22
33import (
44 "testing"
5-
6- "github.com/indaco/goaster"
75)
86
97func TestToasterBuilder_Defaults (t * testing.T ) {
10- toaster := goaster . NewToasterBuilder ().Build ()
8+ toaster := NewToasterBuilder ().Build ()
119
1210 if toaster == nil {
1311 t .Fatal ("expected toaster instance, got nil" )
1412 }
15- if toaster .Position != goaster . BottomRight {
13+ if toaster .Position != BottomRight {
1614 t .Errorf ("expected default position to be BottomRight, got %v" , toaster .Position )
1715 }
1816 if len (toaster .Icons ) == 0 {
@@ -24,13 +22,13 @@ func TestToasterBuilder_Defaults(t *testing.T) {
2422}
2523
2624func TestToasterBuilder_CustomConfig (t * testing.T ) {
27- toaster := goaster . NewToasterBuilder ().
28- WithPosition (goaster . TopLeft ).
25+ toaster := NewToasterBuilder ().
26+ WithPosition (TopLeft ).
2927 WithBorder (false ).
3028 WithAutoDismiss (false ).
3129 Build ()
3230
33- if toaster .Position != goaster . TopLeft {
31+ if toaster .Position != TopLeft {
3432 t .Errorf ("expected position TopLeft, got %v" , toaster .Position )
3533 }
3634 if toaster .Border != false {
@@ -42,20 +40,20 @@ func TestToasterBuilder_CustomConfig(t *testing.T) {
4240}
4341
4442func TestToasterBuilder_WithAllOptions (t * testing.T ) {
45- toaster := goaster . NewToasterBuilder ().
46- WithVariant (goaster . AccentLight ).
43+ toaster := NewToasterBuilder ().
44+ WithVariant (AccentLight ).
4745 WithBorder (false ).
4846 WithRounded (true ).
4947 WithShowIcon (false ).
5048 WithButton (false ).
5149 WithAutoDismiss (false ).
5250 WithAnimation (false ).
5351 WithProgressBar (false ).
54- WithPosition (goaster . TopCenter ).
55- WithIcon (goaster . ErrorLevel , "<svg>Error</svg>" ).
52+ WithPosition (TopCenter ).
53+ WithIcon (ErrorLevel , "<svg>Error</svg>" ).
5654 Build ()
5755
58- if toaster .Variant != goaster . AccentLight {
56+ if toaster .Variant != AccentLight {
5957 t .Errorf ("expected Variant to be AccentLight, got %v" , toaster .Variant )
6058 }
6159 if toaster .Border {
@@ -79,22 +77,22 @@ func TestToasterBuilder_WithAllOptions(t *testing.T) {
7977 if toaster .ProgressBar {
8078 t .Errorf ("expected ProgressBar=false" )
8179 }
82- if toaster .Position != goaster . TopCenter {
80+ if toaster .Position != TopCenter {
8381 t .Errorf ("expected Position=TopCenter, got %v" , toaster .Position )
8482 }
85- if icon , ok := toaster .Icons [goaster . ErrorLevel ]; ! ok || icon != "<svg>Error</svg>" {
83+ if icon , ok := toaster .Icons [ErrorLevel ]; ! ok || icon != "<svg>Error</svg>" {
8684 t .Errorf ("expected custom ErrorLevel icon to be set, got %q" , icon )
8785 }
8886}
8987
9088func TestToasterBuilder_WithOptionsMerge (t * testing.T ) {
91- builder := goaster . NewToasterBuilder ().
89+ builder := NewToasterBuilder ().
9290 WithBorder (false )
9391
9492 // Apply additional options
9593 toaster := builder .WithOptions (
96- goaster . WithAutoDismiss (false ),
97- goaster . WithAnimation (false ),
94+ WithAutoDismiss (false ),
95+ WithAnimation (false ),
9896 ).Build ()
9997
10098 if toaster .Border != false {
@@ -110,31 +108,31 @@ func TestToasterBuilder_WithOptionsMerge(t *testing.T) {
110108
111109func TestToasterBuilder_WithIconNilMap (t * testing.T ) {
112110 // Manually simulate icon map being nil
113- builder := goaster . NewToasterBuilder ()
111+ builder := NewToasterBuilder ()
114112 builder .Build ().Icons = nil // forcibly set to nil
115113
116114 // Set new icon — this should initialize the map
117- toaster := builder .WithIcon (goaster . WarningLevel , "<svg>Warning</svg>" ).Build ()
115+ toaster := builder .WithIcon (WarningLevel , "<svg>Warning</svg>" ).Build ()
118116
119- icon , ok := toaster .Icons [goaster . WarningLevel ]
117+ icon , ok := toaster .Icons [WarningLevel ]
120118 if ! ok || icon != "<svg>Warning</svg>" {
121119 t .Errorf ("expected WarningLevel icon to be set correctly, got %q" , icon )
122120 }
123121}
124122
125123func TestToasterBuilder_Build_FallbackToDefaultPosition (t * testing.T ) {
126124 // Simulate missing Position
127- builder := goaster . NewToasterBuilder ()
125+ builder := NewToasterBuilder ()
128126 builder .Build ().Position = "" // forcibly unset
129127 toaster := builder .Build ()
130128
131- if toaster .Position != goaster . BottomRight {
129+ if toaster .Position != BottomRight {
132130 t .Errorf ("expected fallback Position to be BottomRight, got %v" , toaster .Position )
133131 }
134132}
135133
136134func TestToasterBuilder_Build_FallbackToDefaultIcons (t * testing.T ) {
137- builder := goaster . NewToasterBuilder ()
135+ builder := NewToasterBuilder ()
138136 builder .Build ().Icons = nil // forcibly unset
139137 toaster := builder .Build ()
140138
@@ -144,36 +142,33 @@ func TestToasterBuilder_Build_FallbackToDefaultIcons(t *testing.T) {
144142}
145143
146144func TestToasterBuilder_Build_FallbackToNewQueue_Clean (t * testing.T ) {
147- builder := goaster .NewToasterBuilder ()
148- builder .Build ().Queue ().Dequeue () // trigger init
149- builder .Build ().Queue ().Dequeue ()
150- builder .Build ().Queue ().Dequeue ()
151-
152- // forcibly nil the queue
153- builder .Build ().Queue ().Dequeue ()
145+ builder := NewToasterBuilder ()
154146 toaster := builder .Build ()
155- toaster .Queue ().Dequeue ()
156147
157- // ACTUAL REAL CLEAN VERSION BELOW:
158- toaster = goaster .NewToasterBuilder ().Build ()
159- toaster .Queue ().Dequeue () // Should not panic
148+ // Attempt to dequeue from an empty queue
149+ _ , err := toaster .Queue ().Dequeue ()
150+ if err == nil {
151+ t .Errorf ("expected error when dequeuing from an empty queue, got nil" )
152+ }
153+
154+ // Make sure the queue is initialized
160155 if toaster .Queue () == nil {
161156 t .Errorf ("expected Queue to be initialized" )
162157 }
163158}
164159
165160func TestToasterBuilder_Build_SetsDefaultPositionIfEmpty (t * testing.T ) {
166- builder := goaster . NewToasterBuilder ()
161+ builder := NewToasterBuilder ()
167162 builder .Build ().Position = "" // simulate unset
168163
169164 toaster := builder .Build ()
170- if toaster .Position != goaster . BottomRight {
165+ if toaster .Position != BottomRight {
171166 t .Errorf ("expected Position to default to BottomRight, got %v" , toaster .Position )
172167 }
173168}
174169
175170func TestToasterBuilder_Build_SetsDefaultIconsIfNil (t * testing.T ) {
176- builder := goaster . NewToasterBuilder ()
171+ builder := NewToasterBuilder ()
177172 builder .Build ().Icons = nil // simulate nil
178173
179174 toaster := builder .Build ()
@@ -183,19 +178,21 @@ func TestToasterBuilder_Build_SetsDefaultIconsIfNil(t *testing.T) {
183178}
184179
185180func TestToasterBuilder_Build_InitializesQueueIfNil (t * testing.T ) {
186- builder := goaster .NewToasterBuilder ()
187- builder .Build ().Queue ().Dequeue () // init first
181+ builder := NewToasterBuilder ()
188182
189- builder . Build (). Queue (). Dequeue () // simulate use
190- builder .Build ().Queue (). Dequeue ()
183+ // Manually set queue to nil to simulate uninitialized queue
184+ builder .Build ().queue = nil
191185
192- // force nil
193- builder .Build (). Queue (). Dequeue ()
186+ // Call Build again to trigger fallback
187+ toaster := builder .Build ()
194188
195- // Actually clean version:
196- toaster := goaster .NewToasterBuilder ().Build ()
197- toaster .Queue ().Dequeue ()
198189 if toaster .Queue () == nil {
199- t .Errorf ("expected Queue to be initialized" )
190+ t .Errorf ("expected Queue to be initialized, got nil" )
191+ }
192+
193+ // Ensure it functions properly
194+ _ , err := toaster .Queue ().Dequeue ()
195+ if err == nil {
196+ t .Errorf ("expected error when dequeuing from empty queue, got nil" )
200197 }
201198}
0 commit comments