pane_view_internal_test.go RawHistoryFolder
1package component
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/mock"
7
8 "github.com/bnema/dumber/internal/ui/layout"
9 "github.com/bnema/dumber/internal/ui/layout/mocks"
10)
11
12func TestPaneView_HideLoadingSkeleton_HidesWhenPresent(t *testing.T) {
13 mockFactory := mocks.NewMockWidgetFactory(t)
14 mockContainer := mocks.NewMockBoxWidget(t)
15 mockContent := mocks.NewMockBoxWidget(t)
16 mockSpinner := mocks.NewMockSpinnerWidget(t)
17 mockLogo := mocks.NewMockImageWidget(t)
18
19 mockFactory.EXPECT().NewBox(layout.OrientationVertical, 0).Return(mockContainer).Once()
20 mockContainer.EXPECT().SetHexpand(true).Once()
21 mockContainer.EXPECT().SetVexpand(true).Once()
22 mockContainer.EXPECT().SetHalign(mock.Anything).Once()
23 mockContainer.EXPECT().SetValign(mock.Anything).Once()
24 mockContainer.EXPECT().SetCanFocus(false).Once()
25 mockContainer.EXPECT().SetCanTarget(false).Once()
26 mockContainer.EXPECT().AddCssClass("loading-skeleton").Once()
27
28 mockFactory.EXPECT().NewBox(layout.OrientationVertical, 6).Return(mockContent).Once()
29 mockContent.EXPECT().SetHalign(mock.Anything).Once()
30 mockContent.EXPECT().SetValign(mock.Anything).Once()
31 mockContent.EXPECT().SetCanFocus(false).Once()
32 mockContent.EXPECT().SetCanTarget(false).Once()
33 mockContent.EXPECT().AddCssClass("loading-skeleton-content").Once()
34
35 mockFactory.EXPECT().NewSpinner().Return(mockSpinner).Once()
36 mockSpinner.EXPECT().SetHalign(mock.Anything).Once()
37 mockSpinner.EXPECT().SetValign(mock.Anything).Once()
38 mockSpinner.EXPECT().SetCanFocus(false).Once()
39 mockSpinner.EXPECT().SetCanTarget(false).Once()
40 mockSpinner.EXPECT().SetSizeRequest(32, 32).Once()
41 mockSpinner.EXPECT().AddCssClass("loading-skeleton-spinner").Once()
42
43 mockFactory.EXPECT().NewImage().Return(mockLogo).Once()
44 mockLogo.EXPECT().SetHalign(mock.Anything).Once()
45 mockLogo.EXPECT().SetValign(mock.Anything).Once()
46 mockLogo.EXPECT().SetCanFocus(false).Once()
47 mockLogo.EXPECT().SetCanTarget(false).Once()
48 mockLogo.EXPECT().SetSizeRequest(512, 512).Once()
49 mockLogo.EXPECT().SetPixelSize(512).Once()
50 mockLogo.EXPECT().AddCssClass("loading-skeleton-logo").Once()
51 mockLogo.EXPECT().SetFromPaintable(mock.Anything).Maybe()
52
53 mockContent.EXPECT().Append(mockLogo).Once()
54 mockContent.EXPECT().Append(mockSpinner).Once()
55 mockContainer.EXPECT().Append(mockContent).Once()
56
57 mockContainer.EXPECT().SetVisible(true).Once()
58 mockSpinner.EXPECT().Start().Once()
59 ls := NewLoadingSkeleton(mockFactory)
60
61 pv := &PaneView{loading: ls}
62
63 mockContainer.EXPECT().SetVisible(false).Once()
64 mockSpinner.EXPECT().Stop().Once()
65 pv.HideLoadingSkeleton()
66}
67
68func TestPaneView_HideLoadingSkeleton_NoOpWhenNil(t *testing.T) {
69 pv := &PaneView{}
70 pv.HideLoadingSkeleton()
71}