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 mockVersion := mocks.NewMockLabelWidget(t)
19
20 mockFactory.EXPECT().NewBox(layout.OrientationVertical, 0).Return(mockContainer).Once()
21 mockContainer.EXPECT().SetHexpand(true).Once()
22 mockContainer.EXPECT().SetVexpand(true).Once()
23 mockContainer.EXPECT().SetHalign(mock.Anything).Once()
24 mockContainer.EXPECT().SetValign(mock.Anything).Once()
25 mockContainer.EXPECT().SetCanFocus(false).Once()
26 mockContainer.EXPECT().SetCanTarget(false).Once()
27 mockContainer.EXPECT().AddCssClass("loading-skeleton").Once()
28
29 mockFactory.EXPECT().NewBox(layout.OrientationVertical, 6).Return(mockContent).Once()
30 mockContent.EXPECT().SetHalign(mock.Anything).Once()
31 mockContent.EXPECT().SetValign(mock.Anything).Once()
32 mockContent.EXPECT().SetCanFocus(false).Once()
33 mockContent.EXPECT().SetCanTarget(false).Once()
34 mockContent.EXPECT().AddCssClass("loading-skeleton-content").Once()
35
36 mockFactory.EXPECT().NewImage().Return(mockLogo).Once()
37 mockLogo.EXPECT().SetHalign(mock.Anything).Once()
38 mockLogo.EXPECT().SetValign(mock.Anything).Once()
39 mockLogo.EXPECT().SetCanFocus(false).Once()
40 mockLogo.EXPECT().SetCanTarget(false).Once()
41 mockLogo.EXPECT().SetSizeRequest(mock.Anything, mock.Anything).Once()
42 mockLogo.EXPECT().SetPixelSize(mock.Anything).Once()
43 mockLogo.EXPECT().AddCssClass("loading-skeleton-logo").Once()
44 mockLogo.EXPECT().SetFromPaintable(mock.Anything).Maybe()
45
46 mockFactory.EXPECT().NewSpinner().Return(mockSpinner).Once()
47 mockSpinner.EXPECT().SetHalign(mock.Anything).Once()
48 mockSpinner.EXPECT().SetValign(mock.Anything).Once()
49 mockSpinner.EXPECT().SetCanFocus(false).Once()
50 mockSpinner.EXPECT().SetCanTarget(false).Once()
51 mockSpinner.EXPECT().SetSizeRequest(mock.Anything, mock.Anything).Once()
52 mockSpinner.EXPECT().AddCssClass("loading-skeleton-spinner").Once()
53
54 mockFactory.EXPECT().NewLabel(mock.Anything).Return(mockVersion).Once()
55 mockVersion.EXPECT().SetHalign(mock.Anything).Once()
56 mockVersion.EXPECT().SetValign(mock.Anything).Once()
57 mockVersion.EXPECT().SetCanFocus(false).Once()
58 mockVersion.EXPECT().SetCanTarget(false).Once()
59 mockVersion.EXPECT().SetMaxWidthChars(mock.Anything).Once()
60 mockVersion.EXPECT().SetEllipsize(mock.Anything).Once()
61 mockVersion.EXPECT().AddCssClass("loading-skeleton-version").Once()
62
63 mockContent.EXPECT().Append(mockLogo).Once()
64 mockContent.EXPECT().Append(mockSpinner).Once()
65 mockContent.EXPECT().Append(mockVersion).Once()
66 mockContainer.EXPECT().Append(mockContent).Once()
67
68 mockContainer.EXPECT().SetVisible(true).Once()
69 mockSpinner.EXPECT().Start().Once()
70 ls := NewLoadingSkeleton(mockFactory)
71
72 pv := &PaneView{loading: ls}
73
74 mockContainer.EXPECT().SetVisible(false).Once()
75 mockSpinner.EXPECT().Stop().Once()
76 pv.HideLoadingSkeleton()
77}
78
79func TestPaneView_HideLoadingSkeleton_NoOpWhenNil(t *testing.T) {
80 pv := &PaneView{}
81 pv.HideLoadingSkeleton()
82}