@morscherlab/mint-sdk 1.0.0-alpha.8 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/dist/{auth-BYmxZdJl.js → auth-DsI0rQ7_.js} +6 -6
- package/dist/auth-DsI0rQ7_.js.map +1 -0
- package/dist/components/index.js +2 -2
- package/dist/{components-CKf-UpGi.js → components-CzbQQPCb.js} +1429 -1429
- package/dist/components-CzbQQPCb.js.map +1 -0
- package/dist/composables/index.js +2 -2
- package/dist/composables/usePlatformContext.d.ts +3 -3
- package/dist/{composables-D0QfFzq1.js → composables-BXklV5ii.js} +3 -3
- package/dist/{composables-D0QfFzq1.js.map → composables-BXklV5ii.js.map} +1 -1
- package/dist/index.js +4 -4
- package/dist/install.d.ts +3 -3
- package/dist/install.js +5 -5
- package/dist/install.js.map +1 -1
- package/dist/stores/auth.d.ts +1 -1
- package/dist/stores/index.js +1 -1
- package/dist/stores/settings.d.ts +1 -1
- package/dist/styles.css +5388 -5388
- package/dist/types/platform.d.ts +1 -1
- package/dist/{useScheduleDrag-DAJueTbK.js → useScheduleDrag-CxBeqYcu.js} +331 -331
- package/dist/useScheduleDrag-CxBeqYcu.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/components/AppLayout.test.ts +23 -23
- package/src/__tests__/components/AppSidebar.test.ts +29 -29
- package/src/__tests__/components/AppTopBar.test.ts +45 -45
- package/src/__tests__/components/BaseInput.test.ts +2 -2
- package/src/__tests__/components/BasePill.test.ts +37 -37
- package/src/__tests__/components/Calendar.test.ts +52 -52
- package/src/__tests__/components/CollapsibleCard.test.ts +81 -81
- package/src/__tests__/components/DataFrame.test.ts +80 -80
- package/src/__tests__/components/DropdownButton.test.ts +80 -80
- package/src/__tests__/composables/usePlatformContext.test.ts +1 -1
- package/src/components/AlertBox.story.vue +1 -1
- package/src/components/AlertBox.vue +14 -14
- package/src/components/AppAvatarMenu.vue +26 -26
- package/src/components/AppContainer.vue +3 -3
- package/src/components/AppLayout.vue +7 -7
- package/src/components/AppPageSelector.vue +30 -30
- package/src/components/AppPillNav.vue +10 -10
- package/src/components/AppPluginSwitcher.vue +31 -31
- package/src/components/AppSidebar.vue +8 -8
- package/src/components/AppTopBar.story.vue +7 -7
- package/src/components/AppTopBar.vue +102 -102
- package/src/components/AuditTrail.vue +19 -19
- package/src/components/AutoGroupModal.vue +76 -76
- package/src/components/Avatar.vue +6 -6
- package/src/components/BaseButton.vue +6 -6
- package/src/components/BaseCheckbox.vue +9 -9
- package/src/components/BaseInput.vue +4 -4
- package/src/components/BaseModal.story.vue +1 -1
- package/src/components/BaseModal.vue +14 -14
- package/src/components/BasePill.vue +9 -9
- package/src/components/BaseRadioGroup.vue +21 -21
- package/src/components/BaseSelect.vue +6 -6
- package/src/components/BaseSlider.vue +8 -8
- package/src/components/BaseTabs.vue +7 -7
- package/src/components/BaseTextarea.vue +5 -5
- package/src/components/BaseToggle.vue +10 -10
- package/src/components/BatchProgressList.vue +25 -25
- package/src/components/Breadcrumb.vue +8 -8
- package/src/components/Calendar.vue +19 -19
- package/src/components/ChartContainer.vue +9 -9
- package/src/components/ChemicalFormula.vue +7 -7
- package/src/components/CollapsibleCard.vue +20 -20
- package/src/components/ColorSlider.vue +6 -6
- package/src/components/ConcentrationInput.vue +12 -12
- package/src/components/ConfirmDialog.story.vue +1 -1
- package/src/components/ConfirmDialog.vue +7 -7
- package/src/components/DataFrame.vue +40 -40
- package/src/components/DatePicker.vue +29 -29
- package/src/components/DateTimePicker.vue +41 -41
- package/src/components/Divider.vue +9 -9
- package/src/components/DoseCalculator.vue +66 -66
- package/src/components/DropdownButton.vue +19 -19
- package/src/components/EmptyState.vue +9 -9
- package/src/components/ExperimentCodeBadge.vue +3 -3
- package/src/components/ExperimentDataViewer.vue +25 -25
- package/src/components/ExperimentPopover.vue +35 -35
- package/src/components/ExperimentSelectorModal.vue +40 -40
- package/src/components/ExperimentTimeline.vue +48 -48
- package/src/components/FileUploader.vue +31 -31
- package/src/components/FitPanel.vue +9 -9
- package/src/components/FormActions.vue +1 -1
- package/src/components/FormBuilder.vue +2 -2
- package/src/components/FormField.vue +7 -7
- package/src/components/FormSection.vue +7 -7
- package/src/components/FormulaInput.vue +10 -10
- package/src/components/GroupAssigner.vue +40 -40
- package/src/components/GroupingModal.vue +45 -45
- package/src/components/IconButton.vue +6 -6
- package/src/components/LoadingSpinner.vue +5 -5
- package/src/components/MoleculeInput.vue +21 -21
- package/src/components/MultiSelect.vue +13 -13
- package/src/components/NumberInput.vue +13 -13
- package/src/components/PlateMapEditor.vue +63 -63
- package/src/components/ProgressBar.vue +18 -18
- package/src/components/ProtocolStepEditor.vue +57 -57
- package/src/components/RackEditor.vue +28 -28
- package/src/components/ReagentEditor.vue +61 -61
- package/src/components/ReagentList.vue +49 -49
- package/src/components/ResourceCard.vue +28 -28
- package/src/components/SampleHierarchyTree.vue +13 -13
- package/src/components/SampleLegend.vue +12 -12
- package/src/components/SampleSelector.vue +104 -104
- package/src/components/ScheduleCalendar.vue +42 -42
- package/src/components/ScientificNumber.vue +11 -11
- package/src/components/SegmentedControl.vue +12 -12
- package/src/components/SequenceInput.vue +32 -32
- package/src/components/SettingsButton.vue +5 -5
- package/src/components/SettingsModal.vue +17 -17
- package/src/components/StatusIndicator.vue +5 -5
- package/src/components/StepWizard.vue +16 -16
- package/src/components/TagsInput.vue +20 -20
- package/src/components/ThemeToggle.vue +3 -3
- package/src/components/TimePicker.vue +21 -21
- package/src/components/TimeRangeInput.vue +5 -5
- package/src/components/ToastNotification.vue +8 -8
- package/src/components/Tooltip.vue +7 -7
- package/src/components/UnitInput.vue +12 -12
- package/src/components/WellEditPopup.vue +28 -28
- package/src/components/WellPlate.vue +37 -37
- package/src/composables/useAppExperiment.ts +1 -1
- package/src/composables/usePlatformContext.ts +16 -16
- package/src/composables/useProtocolTemplates.ts +1 -1
- package/src/install.ts +3 -3
- package/src/stores/auth.ts +3 -3
- package/src/stores/settings.ts +2 -2
- package/src/styles/components/alert-box.css +30 -30
- package/src/styles/components/app-avatar-menu.css +23 -23
- package/src/styles/components/app-container.css +6 -6
- package/src/styles/components/app-layout.css +15 -15
- package/src/styles/components/app-page-selector.css +26 -26
- package/src/styles/components/app-pill-nav.css +7 -7
- package/src/styles/components/app-plugin-switcher.css +27 -27
- package/src/styles/components/app-sidebar.css +24 -24
- package/src/styles/components/app-top-bar.css +65 -65
- package/src/styles/components/audit-trail.css +29 -29
- package/src/styles/components/auto-group-modal.css +91 -91
- package/src/styles/components/avatar.css +15 -15
- package/src/styles/components/batch-progress-list.css +40 -40
- package/src/styles/components/breadcrumb.css +8 -8
- package/src/styles/components/button.css +31 -31
- package/src/styles/components/calendar.css +27 -27
- package/src/styles/components/chart-container.css +9 -9
- package/src/styles/components/checkbox.css +20 -20
- package/src/styles/components/chemical-formula.css +8 -8
- package/src/styles/components/collapsible-card.css +35 -35
- package/src/styles/components/color-slider.css +8 -8
- package/src/styles/components/concentration-input.css +27 -27
- package/src/styles/components/confirm-dialog.css +32 -32
- package/src/styles/components/dataframe.css +66 -66
- package/src/styles/components/date-picker.css +40 -40
- package/src/styles/components/datetime-picker.css +37 -37
- package/src/styles/components/divider.css +13 -13
- package/src/styles/components/dose-calculator.css +43 -43
- package/src/styles/components/dropdown-button.css +46 -46
- package/src/styles/components/empty-state.css +44 -44
- package/src/styles/components/experiment-code-badge.css +8 -8
- package/src/styles/components/experiment-data-viewer.css +23 -23
- package/src/styles/components/experiment-popover.css +97 -97
- package/src/styles/components/experiment-selector-modal.css +39 -39
- package/src/styles/components/experiment-timeline.css +98 -98
- package/src/styles/components/file-uploader.css +44 -44
- package/src/styles/components/fit-panel.css +12 -12
- package/src/styles/components/form-builder.css +11 -11
- package/src/styles/components/form-field.css +7 -7
- package/src/styles/components/formula-input.css +17 -17
- package/src/styles/components/group-assigner.css +26 -26
- package/src/styles/components/grouping-modal.css +51 -51
- package/src/styles/components/icon-button.css +41 -41
- package/src/styles/components/input.css +13 -13
- package/src/styles/components/loading-spinner.css +12 -12
- package/src/styles/components/modal.css +69 -69
- package/src/styles/components/molecule-input.css +27 -27
- package/src/styles/components/multi-select.css +23 -23
- package/src/styles/components/number-input.css +32 -32
- package/src/styles/components/pill.css +37 -37
- package/src/styles/components/plate-map-editor.css +67 -67
- package/src/styles/components/progress-bar.css +41 -41
- package/src/styles/components/protocol-step-editor.css +63 -63
- package/src/styles/components/rack-editor.css +34 -34
- package/src/styles/components/radio-group.css +41 -41
- package/src/styles/components/reagent-editor.css +70 -70
- package/src/styles/components/reagent-list.css +65 -65
- package/src/styles/components/resource-card.css +52 -52
- package/src/styles/components/sample-hierarchy-tree.css +56 -56
- package/src/styles/components/sample-legend.css +37 -37
- package/src/styles/components/sample-selector.css +121 -121
- package/src/styles/components/schedule-calendar.css +67 -67
- package/src/styles/components/scientific-number.css +11 -11
- package/src/styles/components/segmented-control.css +33 -33
- package/src/styles/components/select.css +11 -11
- package/src/styles/components/sequence-input.css +29 -29
- package/src/styles/components/settings-button.css +16 -16
- package/src/styles/components/settings-modal.css +14 -14
- package/src/styles/components/skeleton.css +2 -2
- package/src/styles/components/slider.css +10 -10
- package/src/styles/components/status-indicator.css +12 -12
- package/src/styles/components/step-wizard.css +32 -32
- package/src/styles/components/tabs.css +16 -16
- package/src/styles/components/tags-input.css +46 -46
- package/src/styles/components/textarea.css +17 -17
- package/src/styles/components/theme-toggle.css +13 -13
- package/src/styles/components/time-picker.css +28 -28
- package/src/styles/components/time-range-input.css +8 -8
- package/src/styles/components/toast.css +18 -18
- package/src/styles/components/toggle.css +27 -27
- package/src/styles/components/tooltip.css +18 -18
- package/src/styles/components/unit-input.css +25 -25
- package/src/styles/components/well-edit-popup.css +32 -32
- package/src/styles/components/well-plate.css +49 -49
- package/src/styles/index.css +1 -1
- package/src/styles/variables.css +3 -3
- package/src/types/platform.ts +6 -6
- package/dist/auth-BYmxZdJl.js.map +0 -1
- package/dist/components-CKf-UpGi.js.map +0 -1
- package/dist/useScheduleDrag-DAJueTbK.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morscherlab/mint-sdk",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
4
|
"description": "MINT Platform SDK — Vue 3 components, composables, and types for plugin development. MINT = Mass-spec INtegrated Toolkit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
},
|
|
93
93
|
"repository": {
|
|
94
94
|
"type": "git",
|
|
95
|
-
"url": "https://github.com/MorscherLab/
|
|
95
|
+
"url": "https://github.com/MorscherLab/MINT",
|
|
96
96
|
"directory": "packages/sdk-frontend"
|
|
97
97
|
},
|
|
98
98
|
"keywords": [
|
|
@@ -6,14 +6,14 @@ describe('AppLayout', () => {
|
|
|
6
6
|
describe('rendering with default props', () => {
|
|
7
7
|
it('should render layout with default classes', () => {
|
|
8
8
|
const wrapper = mount(AppLayout)
|
|
9
|
-
expect(wrapper.find('.
|
|
10
|
-
expect(wrapper.find('.
|
|
11
|
-
expect(wrapper.find('.
|
|
9
|
+
expect(wrapper.find('.mint-layout').exists()).toBe(true)
|
|
10
|
+
expect(wrapper.find('.mint-layout--sidebar-right').exists()).toBe(false)
|
|
11
|
+
expect(wrapper.find('.mint-layout--floating').exists()).toBe(false)
|
|
12
12
|
})
|
|
13
13
|
|
|
14
14
|
it('should render body container', () => {
|
|
15
15
|
const wrapper = mount(AppLayout)
|
|
16
|
-
expect(wrapper.find('.
|
|
16
|
+
expect(wrapper.find('.mint-layout__body').exists()).toBe(true)
|
|
17
17
|
})
|
|
18
18
|
|
|
19
19
|
it('should render main content slot', () => {
|
|
@@ -22,8 +22,8 @@ describe('AppLayout', () => {
|
|
|
22
22
|
default: '<p>Main content</p>',
|
|
23
23
|
},
|
|
24
24
|
})
|
|
25
|
-
expect(wrapper.find('.
|
|
26
|
-
expect(wrapper.find('.
|
|
25
|
+
expect(wrapper.find('.mint-layout__main').exists()).toBe(true)
|
|
26
|
+
expect(wrapper.find('.mint-layout__main').text()).toBe('Main content')
|
|
27
27
|
})
|
|
28
28
|
})
|
|
29
29
|
|
|
@@ -34,13 +34,13 @@ describe('AppLayout', () => {
|
|
|
34
34
|
topbar: '<div class="custom-topbar">Topbar</div>',
|
|
35
35
|
},
|
|
36
36
|
})
|
|
37
|
-
expect(wrapper.find('.
|
|
37
|
+
expect(wrapper.find('.mint-layout__topbar').exists()).toBe(true)
|
|
38
38
|
expect(wrapper.find('.custom-topbar').text()).toBe('Topbar')
|
|
39
39
|
})
|
|
40
40
|
|
|
41
41
|
it('should not render topbar when slot is not provided', () => {
|
|
42
42
|
const wrapper = mount(AppLayout)
|
|
43
|
-
expect(wrapper.find('.
|
|
43
|
+
expect(wrapper.find('.mint-layout__topbar').exists()).toBe(false)
|
|
44
44
|
})
|
|
45
45
|
})
|
|
46
46
|
|
|
@@ -51,48 +51,48 @@ describe('AppLayout', () => {
|
|
|
51
51
|
sidebar: '<div class="custom-sidebar">Sidebar</div>',
|
|
52
52
|
},
|
|
53
53
|
})
|
|
54
|
-
expect(wrapper.find('.
|
|
54
|
+
expect(wrapper.find('.mint-layout__sidebar').exists()).toBe(true)
|
|
55
55
|
expect(wrapper.find('.custom-sidebar').text()).toBe('Sidebar')
|
|
56
56
|
})
|
|
57
57
|
|
|
58
58
|
it('should not render sidebar when slot is not provided', () => {
|
|
59
59
|
const wrapper = mount(AppLayout)
|
|
60
|
-
expect(wrapper.find('.
|
|
60
|
+
expect(wrapper.find('.mint-layout__sidebar').exists()).toBe(false)
|
|
61
61
|
})
|
|
62
62
|
})
|
|
63
63
|
|
|
64
64
|
describe('sidebarPosition prop', () => {
|
|
65
65
|
it('should default to left position', () => {
|
|
66
66
|
const wrapper = mount(AppLayout)
|
|
67
|
-
expect(wrapper.find('.
|
|
67
|
+
expect(wrapper.find('.mint-layout--sidebar-right').exists()).toBe(false)
|
|
68
68
|
})
|
|
69
69
|
|
|
70
70
|
it('should add right class when sidebarPosition is right', () => {
|
|
71
71
|
const wrapper = mount(AppLayout, {
|
|
72
72
|
props: { sidebarPosition: 'right' },
|
|
73
73
|
})
|
|
74
|
-
expect(wrapper.find('.
|
|
74
|
+
expect(wrapper.find('.mint-layout--sidebar-right').exists()).toBe(true)
|
|
75
75
|
})
|
|
76
76
|
|
|
77
77
|
it('should not add right class when sidebarPosition is left', () => {
|
|
78
78
|
const wrapper = mount(AppLayout, {
|
|
79
79
|
props: { sidebarPosition: 'left' },
|
|
80
80
|
})
|
|
81
|
-
expect(wrapper.find('.
|
|
81
|
+
expect(wrapper.find('.mint-layout--sidebar-right').exists()).toBe(false)
|
|
82
82
|
})
|
|
83
83
|
})
|
|
84
84
|
|
|
85
85
|
describe('floating prop', () => {
|
|
86
86
|
it('should not add floating class by default', () => {
|
|
87
87
|
const wrapper = mount(AppLayout)
|
|
88
|
-
expect(wrapper.find('.
|
|
88
|
+
expect(wrapper.find('.mint-layout--floating').exists()).toBe(false)
|
|
89
89
|
})
|
|
90
90
|
|
|
91
91
|
it('should add floating class when floating is true', () => {
|
|
92
92
|
const wrapper = mount(AppLayout, {
|
|
93
93
|
props: { floating: true },
|
|
94
94
|
})
|
|
95
|
-
expect(wrapper.find('.
|
|
95
|
+
expect(wrapper.find('.mint-layout--floating').exists()).toBe(true)
|
|
96
96
|
})
|
|
97
97
|
})
|
|
98
98
|
|
|
@@ -101,7 +101,7 @@ describe('AppLayout', () => {
|
|
|
101
101
|
const wrapper = mount(AppLayout, {
|
|
102
102
|
slots: { sidebar: '<div>Sidebar</div>' },
|
|
103
103
|
})
|
|
104
|
-
const sidebar = wrapper.find('.
|
|
104
|
+
const sidebar = wrapper.find('.mint-layout__sidebar')
|
|
105
105
|
expect(sidebar.attributes('style')).toBeUndefined()
|
|
106
106
|
})
|
|
107
107
|
|
|
@@ -110,7 +110,7 @@ describe('AppLayout', () => {
|
|
|
110
110
|
props: { sidebarWidth: '300px' },
|
|
111
111
|
slots: { sidebar: '<div>Sidebar</div>' },
|
|
112
112
|
})
|
|
113
|
-
const sidebar = wrapper.find('.
|
|
113
|
+
const sidebar = wrapper.find('.mint-layout__sidebar')
|
|
114
114
|
expect(sidebar.attributes('style')).toContain('width: 300px')
|
|
115
115
|
})
|
|
116
116
|
|
|
@@ -119,7 +119,7 @@ describe('AppLayout', () => {
|
|
|
119
119
|
props: { sidebarWidth: '20rem' },
|
|
120
120
|
slots: { sidebar: '<div>Sidebar</div>' },
|
|
121
121
|
})
|
|
122
|
-
const sidebar = wrapper.find('.
|
|
122
|
+
const sidebar = wrapper.find('.mint-layout__sidebar')
|
|
123
123
|
expect(sidebar.attributes('style')).toContain('width: 20rem')
|
|
124
124
|
})
|
|
125
125
|
})
|
|
@@ -147,17 +147,17 @@ describe('AppLayout', () => {
|
|
|
147
147
|
},
|
|
148
148
|
})
|
|
149
149
|
|
|
150
|
-
const layout = wrapper.find('.
|
|
151
|
-
expect(layout.classes()).toContain('
|
|
152
|
-
expect(layout.classes()).toContain('
|
|
150
|
+
const layout = wrapper.find('.mint-layout')
|
|
151
|
+
expect(layout.classes()).toContain('mint-layout--sidebar-right')
|
|
152
|
+
expect(layout.classes()).toContain('mint-layout--floating')
|
|
153
153
|
})
|
|
154
154
|
})
|
|
155
155
|
|
|
156
156
|
describe('edge cases', () => {
|
|
157
157
|
it('should handle empty default slot', () => {
|
|
158
158
|
const wrapper = mount(AppLayout)
|
|
159
|
-
expect(wrapper.find('.
|
|
160
|
-
expect(wrapper.find('.
|
|
159
|
+
expect(wrapper.find('.mint-layout__main').exists()).toBe(true)
|
|
160
|
+
expect(wrapper.find('.mint-layout__main').text()).toBe('')
|
|
161
161
|
})
|
|
162
162
|
})
|
|
163
163
|
})
|
|
@@ -18,60 +18,60 @@ describe('AppSidebar', () => {
|
|
|
18
18
|
describe('rendering with default props', () => {
|
|
19
19
|
it('should render sidebar with default classes', () => {
|
|
20
20
|
const wrapper = mount(AppSidebar)
|
|
21
|
-
expect(wrapper.find('.
|
|
22
|
-
expect(wrapper.find('.
|
|
23
|
-
expect(wrapper.find('.
|
|
21
|
+
expect(wrapper.find('.mint-sidebar').exists()).toBe(true)
|
|
22
|
+
expect(wrapper.find('.mint-sidebar--left').exists()).toBe(true)
|
|
23
|
+
expect(wrapper.find('.mint-sidebar--floating').exists()).toBe(true)
|
|
24
24
|
})
|
|
25
25
|
|
|
26
26
|
it('should apply default width', () => {
|
|
27
27
|
const wrapper = mount(AppSidebar, {
|
|
28
28
|
props: { panels: samplePanels, activeView: 'analysis' },
|
|
29
29
|
})
|
|
30
|
-
expect(wrapper.find('.
|
|
30
|
+
expect(wrapper.find('.mint-sidebar').attributes('style')).toContain('width: 280px')
|
|
31
31
|
})
|
|
32
32
|
|
|
33
33
|
it('should be hidden when no panels match active view', () => {
|
|
34
34
|
const wrapper = mount(AppSidebar, {
|
|
35
35
|
props: { panels: samplePanels, activeView: 'settings' },
|
|
36
36
|
})
|
|
37
|
-
expect(wrapper.find('.
|
|
37
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
it('should be hidden when activeView is empty', () => {
|
|
41
41
|
const wrapper = mount(AppSidebar)
|
|
42
|
-
expect(wrapper.find('.
|
|
42
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
43
43
|
})
|
|
44
44
|
})
|
|
45
45
|
|
|
46
46
|
describe('side prop', () => {
|
|
47
47
|
it('should default to left side', () => {
|
|
48
48
|
const wrapper = mount(AppSidebar)
|
|
49
|
-
expect(wrapper.find('.
|
|
50
|
-
expect(wrapper.find('.
|
|
49
|
+
expect(wrapper.find('.mint-sidebar--left').exists()).toBe(true)
|
|
50
|
+
expect(wrapper.find('.mint-sidebar--right').exists()).toBe(false)
|
|
51
51
|
})
|
|
52
52
|
|
|
53
53
|
it('should apply right side class', () => {
|
|
54
54
|
const wrapper = mount(AppSidebar, {
|
|
55
55
|
props: { side: 'right' },
|
|
56
56
|
})
|
|
57
|
-
expect(wrapper.find('.
|
|
58
|
-
expect(wrapper.find('.
|
|
57
|
+
expect(wrapper.find('.mint-sidebar--right').exists()).toBe(true)
|
|
58
|
+
expect(wrapper.find('.mint-sidebar--left').exists()).toBe(false)
|
|
59
59
|
})
|
|
60
60
|
})
|
|
61
61
|
|
|
62
62
|
describe('floating prop', () => {
|
|
63
63
|
it('should apply floating class by default', () => {
|
|
64
64
|
const wrapper = mount(AppSidebar)
|
|
65
|
-
expect(wrapper.find('.
|
|
66
|
-
expect(wrapper.find('.
|
|
65
|
+
expect(wrapper.find('.mint-sidebar--floating').exists()).toBe(true)
|
|
66
|
+
expect(wrapper.find('.mint-sidebar--static').exists()).toBe(false)
|
|
67
67
|
})
|
|
68
68
|
|
|
69
69
|
it('should apply static class when floating is false', () => {
|
|
70
70
|
const wrapper = mount(AppSidebar, {
|
|
71
71
|
props: { floating: false },
|
|
72
72
|
})
|
|
73
|
-
expect(wrapper.find('.
|
|
74
|
-
expect(wrapper.find('.
|
|
73
|
+
expect(wrapper.find('.mint-sidebar--static').exists()).toBe(true)
|
|
74
|
+
expect(wrapper.find('.mint-sidebar--floating').exists()).toBe(false)
|
|
75
75
|
})
|
|
76
76
|
})
|
|
77
77
|
|
|
@@ -84,7 +84,7 @@ describe('AppSidebar', () => {
|
|
|
84
84
|
width: '300px',
|
|
85
85
|
},
|
|
86
86
|
})
|
|
87
|
-
expect(wrapper.find('.
|
|
87
|
+
expect(wrapper.find('.mint-sidebar').attributes('style')).toContain('width: 300px')
|
|
88
88
|
})
|
|
89
89
|
|
|
90
90
|
it('should handle different CSS units', () => {
|
|
@@ -95,7 +95,7 @@ describe('AppSidebar', () => {
|
|
|
95
95
|
width: '20rem',
|
|
96
96
|
},
|
|
97
97
|
})
|
|
98
|
-
expect(wrapper.find('.
|
|
98
|
+
expect(wrapper.find('.mint-sidebar').attributes('style')).toContain('width: 20rem')
|
|
99
99
|
})
|
|
100
100
|
})
|
|
101
101
|
|
|
@@ -163,10 +163,10 @@ describe('AppSidebar', () => {
|
|
|
163
163
|
props: { panels: samplePanels, activeView: 'analysis' },
|
|
164
164
|
global: { components: { CollapsibleCard } },
|
|
165
165
|
})
|
|
166
|
-
expect(wrapper.find('.
|
|
166
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(false)
|
|
167
167
|
|
|
168
168
|
await wrapper.setProps({ activeView: 'settings' })
|
|
169
|
-
expect(wrapper.find('.
|
|
169
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
170
170
|
})
|
|
171
171
|
})
|
|
172
172
|
|
|
@@ -206,7 +206,7 @@ describe('AppSidebar', () => {
|
|
|
206
206
|
header: '<div class="custom-header">Header</div>',
|
|
207
207
|
},
|
|
208
208
|
})
|
|
209
|
-
expect(wrapper.find('.
|
|
209
|
+
expect(wrapper.find('.mint-sidebar__header').exists()).toBe(true)
|
|
210
210
|
expect(wrapper.find('.custom-header').text()).toBe('Header')
|
|
211
211
|
})
|
|
212
212
|
|
|
@@ -217,7 +217,7 @@ describe('AppSidebar', () => {
|
|
|
217
217
|
footer: '<div class="custom-footer">Footer</div>',
|
|
218
218
|
},
|
|
219
219
|
})
|
|
220
|
-
expect(wrapper.find('.
|
|
220
|
+
expect(wrapper.find('.mint-sidebar__footer').exists()).toBe(true)
|
|
221
221
|
expect(wrapper.find('.custom-footer').text()).toBe('Footer')
|
|
222
222
|
})
|
|
223
223
|
|
|
@@ -225,14 +225,14 @@ describe('AppSidebar', () => {
|
|
|
225
225
|
const wrapper = mount(AppSidebar, {
|
|
226
226
|
props: { panels: samplePanels, activeView: 'analysis' },
|
|
227
227
|
})
|
|
228
|
-
expect(wrapper.find('.
|
|
228
|
+
expect(wrapper.find('.mint-sidebar__header').exists()).toBe(false)
|
|
229
229
|
})
|
|
230
230
|
|
|
231
231
|
it('should not render footer when slot is not provided', () => {
|
|
232
232
|
const wrapper = mount(AppSidebar, {
|
|
233
233
|
props: { panels: samplePanels, activeView: 'analysis' },
|
|
234
234
|
})
|
|
235
|
-
expect(wrapper.find('.
|
|
235
|
+
expect(wrapper.find('.mint-sidebar__footer').exists()).toBe(false)
|
|
236
236
|
})
|
|
237
237
|
})
|
|
238
238
|
|
|
@@ -241,21 +241,21 @@ describe('AppSidebar', () => {
|
|
|
241
241
|
const wrapper = mount(AppSidebar, {
|
|
242
242
|
props: { panels: {}, activeView: 'analysis' },
|
|
243
243
|
})
|
|
244
|
-
expect(wrapper.find('.
|
|
244
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
245
245
|
})
|
|
246
246
|
|
|
247
247
|
it('should handle view with empty sections array', () => {
|
|
248
248
|
const wrapper = mount(AppSidebar, {
|
|
249
249
|
props: { panels: { empty: [] }, activeView: 'empty' },
|
|
250
250
|
})
|
|
251
|
-
expect(wrapper.find('.
|
|
251
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
252
252
|
})
|
|
253
253
|
|
|
254
254
|
it('should handle undefined activeView', () => {
|
|
255
255
|
const wrapper = mount(AppSidebar, {
|
|
256
256
|
props: { panels: samplePanels },
|
|
257
257
|
})
|
|
258
|
-
expect(wrapper.find('.
|
|
258
|
+
expect(wrapper.find('.mint-sidebar--hidden').exists()).toBe(true)
|
|
259
259
|
})
|
|
260
260
|
})
|
|
261
261
|
|
|
@@ -268,9 +268,9 @@ describe('AppSidebar', () => {
|
|
|
268
268
|
},
|
|
269
269
|
})
|
|
270
270
|
|
|
271
|
-
const sidebar = wrapper.find('.
|
|
272
|
-
expect(sidebar.classes()).toContain('
|
|
273
|
-
expect(sidebar.classes()).toContain('
|
|
271
|
+
const sidebar = wrapper.find('.mint-sidebar')
|
|
272
|
+
expect(sidebar.classes()).toContain('mint-sidebar--left')
|
|
273
|
+
expect(sidebar.classes()).toContain('mint-sidebar--static')
|
|
274
274
|
})
|
|
275
275
|
|
|
276
276
|
it('should render all slots with sections', () => {
|
|
@@ -286,7 +286,7 @@ describe('AppSidebar', () => {
|
|
|
286
286
|
|
|
287
287
|
expect(wrapper.find('.header').exists()).toBe(true)
|
|
288
288
|
expect(wrapper.find('.footer').exists()).toBe(true)
|
|
289
|
-
expect(wrapper.find('.
|
|
289
|
+
expect(wrapper.find('.mint-sidebar__sections').exists()).toBe(true)
|
|
290
290
|
})
|
|
291
291
|
})
|
|
292
292
|
})
|
|
@@ -65,7 +65,7 @@ describe('AppTopBar', () => {
|
|
|
65
65
|
|
|
66
66
|
it('should render without settings button by default', () => {
|
|
67
67
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
68
|
-
expect(wrapper.find('.
|
|
68
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(false)
|
|
69
69
|
})
|
|
70
70
|
|
|
71
71
|
it('should render without SettingsModal by default', () => {
|
|
@@ -75,8 +75,8 @@ describe('AppTopBar', () => {
|
|
|
75
75
|
|
|
76
76
|
it('should show standalone badge by default when not integrated', () => {
|
|
77
77
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
78
|
-
expect(wrapper.find('.
|
|
79
|
-
expect(wrapper.find('.
|
|
78
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
79
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').text()).toBe('Standalone')
|
|
80
80
|
})
|
|
81
81
|
})
|
|
82
82
|
|
|
@@ -112,7 +112,7 @@ describe('AppTopBar', () => {
|
|
|
112
112
|
title: 'Test App',
|
|
113
113
|
showThemeToggle: true,
|
|
114
114
|
})
|
|
115
|
-
const rightSection = wrapper.find('.
|
|
115
|
+
const rightSection = wrapper.find('.mint-topbar__right')
|
|
116
116
|
expect(rightSection.findComponent(ThemeToggle).exists()).toBe(true)
|
|
117
117
|
})
|
|
118
118
|
})
|
|
@@ -123,7 +123,7 @@ describe('AppTopBar', () => {
|
|
|
123
123
|
title: 'Test App',
|
|
124
124
|
showSettings: false,
|
|
125
125
|
})
|
|
126
|
-
expect(wrapper.find('.
|
|
126
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(false)
|
|
127
127
|
})
|
|
128
128
|
|
|
129
129
|
it('should render settings button when showSettings is true', () => {
|
|
@@ -131,7 +131,7 @@ describe('AppTopBar', () => {
|
|
|
131
131
|
title: 'Test App',
|
|
132
132
|
showSettings: true,
|
|
133
133
|
})
|
|
134
|
-
const settingsBtn = wrapper.find('.
|
|
134
|
+
const settingsBtn = wrapper.find('.mint-topbar__settings-btn')
|
|
135
135
|
expect(settingsBtn.exists()).toBe(true)
|
|
136
136
|
})
|
|
137
137
|
|
|
@@ -148,7 +148,7 @@ describe('AppTopBar', () => {
|
|
|
148
148
|
title: 'Test App',
|
|
149
149
|
showSettings: true,
|
|
150
150
|
})
|
|
151
|
-
const settingsBtn = wrapper.find('.
|
|
151
|
+
const settingsBtn = wrapper.find('.mint-topbar__settings-btn')
|
|
152
152
|
expect(settingsBtn.attributes('aria-label')).toBe('Open settings')
|
|
153
153
|
})
|
|
154
154
|
|
|
@@ -157,8 +157,8 @@ describe('AppTopBar', () => {
|
|
|
157
157
|
title: 'Test App',
|
|
158
158
|
showSettings: true,
|
|
159
159
|
})
|
|
160
|
-
const settingsBtn = wrapper.find('.
|
|
161
|
-
const icon = settingsBtn.find('.
|
|
160
|
+
const settingsBtn = wrapper.find('.mint-topbar__settings-btn')
|
|
161
|
+
const icon = settingsBtn.find('.mint-topbar__settings-icon')
|
|
162
162
|
expect(icon.exists()).toBe(true)
|
|
163
163
|
expect(icon.element.tagName.toLowerCase()).toBe('svg')
|
|
164
164
|
})
|
|
@@ -171,7 +171,7 @@ describe('AppTopBar', () => {
|
|
|
171
171
|
showSettings: true,
|
|
172
172
|
})
|
|
173
173
|
|
|
174
|
-
const settingsBtn = wrapper.find('.
|
|
174
|
+
const settingsBtn = wrapper.find('.mint-topbar__settings-btn')
|
|
175
175
|
await settingsBtn.trigger('click')
|
|
176
176
|
|
|
177
177
|
const settingsModal = wrapper.findComponent(SettingsModal)
|
|
@@ -335,7 +335,7 @@ describe('AppTopBar', () => {
|
|
|
335
335
|
title: 'Test App',
|
|
336
336
|
showStandaloneLabel: true,
|
|
337
337
|
})
|
|
338
|
-
expect(wrapper.find('.
|
|
338
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
339
339
|
})
|
|
340
340
|
|
|
341
341
|
it('should hide standalone badge when showStandaloneLabel is false', () => {
|
|
@@ -343,7 +343,7 @@ describe('AppTopBar', () => {
|
|
|
343
343
|
title: 'Test App',
|
|
344
344
|
showStandaloneLabel: false,
|
|
345
345
|
})
|
|
346
|
-
expect(wrapper.find('.
|
|
346
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(false)
|
|
347
347
|
})
|
|
348
348
|
})
|
|
349
349
|
|
|
@@ -352,7 +352,7 @@ describe('AppTopBar', () => {
|
|
|
352
352
|
const wrapper = createWrapper({
|
|
353
353
|
title: 'Test App',
|
|
354
354
|
})
|
|
355
|
-
const badge = wrapper.find('.
|
|
355
|
+
const badge = wrapper.find('.mint-topbar__standalone-badge')
|
|
356
356
|
expect(badge.text()).toBe('Standalone')
|
|
357
357
|
})
|
|
358
358
|
|
|
@@ -361,7 +361,7 @@ describe('AppTopBar', () => {
|
|
|
361
361
|
title: 'Test App',
|
|
362
362
|
standaloneLabel: 'Demo Mode',
|
|
363
363
|
})
|
|
364
|
-
const badge = wrapper.find('.
|
|
364
|
+
const badge = wrapper.find('.mint-topbar__standalone-badge')
|
|
365
365
|
expect(badge.text()).toBe('Demo Mode')
|
|
366
366
|
})
|
|
367
367
|
|
|
@@ -370,7 +370,7 @@ describe('AppTopBar', () => {
|
|
|
370
370
|
title: 'Test App',
|
|
371
371
|
standaloneLabel: '',
|
|
372
372
|
})
|
|
373
|
-
const badge = wrapper.find('.
|
|
373
|
+
const badge = wrapper.find('.mint-topbar__standalone-badge')
|
|
374
374
|
expect(badge.text()).toBe('')
|
|
375
375
|
})
|
|
376
376
|
})
|
|
@@ -386,7 +386,7 @@ describe('AppTopBar', () => {
|
|
|
386
386
|
})
|
|
387
387
|
|
|
388
388
|
// In non-integrated mode (default mock), badge should be visible
|
|
389
|
-
expect(wrapper.find('.
|
|
389
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
390
390
|
})
|
|
391
391
|
})
|
|
392
392
|
|
|
@@ -399,7 +399,7 @@ describe('AppTopBar', () => {
|
|
|
399
399
|
})
|
|
400
400
|
|
|
401
401
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(true)
|
|
402
|
-
expect(wrapper.find('.
|
|
402
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(true)
|
|
403
403
|
})
|
|
404
404
|
|
|
405
405
|
it('should render standalone badge, ThemeToggle, and settings button together', () => {
|
|
@@ -411,10 +411,10 @@ describe('AppTopBar', () => {
|
|
|
411
411
|
standaloneLabel: 'Offline',
|
|
412
412
|
})
|
|
413
413
|
|
|
414
|
-
expect(wrapper.find('.
|
|
415
|
-
expect(wrapper.find('.
|
|
414
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
415
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').text()).toBe('Offline')
|
|
416
416
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(true)
|
|
417
|
-
expect(wrapper.find('.
|
|
417
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(true)
|
|
418
418
|
})
|
|
419
419
|
|
|
420
420
|
it('should maintain existing topbar functionality with new features', () => {
|
|
@@ -432,8 +432,8 @@ describe('AppTopBar', () => {
|
|
|
432
432
|
|
|
433
433
|
// Verify new features render
|
|
434
434
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(true)
|
|
435
|
-
expect(wrapper.find('.
|
|
436
|
-
expect(wrapper.find('.
|
|
435
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(true)
|
|
436
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
437
437
|
})
|
|
438
438
|
|
|
439
439
|
it('should render all elements in correct order in right section', () => {
|
|
@@ -446,29 +446,29 @@ describe('AppTopBar', () => {
|
|
|
446
446
|
actions: '<button class="custom-action">Action</button>',
|
|
447
447
|
})
|
|
448
448
|
|
|
449
|
-
const rightSection = wrapper.find('.
|
|
449
|
+
const rightSection = wrapper.find('.mint-topbar__right')
|
|
450
450
|
expect(rightSection.exists()).toBe(true)
|
|
451
451
|
|
|
452
452
|
// Verify all expected elements are present
|
|
453
|
-
expect(wrapper.find('.
|
|
453
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
454
454
|
expect(wrapper.find('.custom-action').exists()).toBe(true)
|
|
455
|
-
expect(wrapper.find('.
|
|
455
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(true)
|
|
456
456
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(true)
|
|
457
457
|
})
|
|
458
458
|
})
|
|
459
459
|
|
|
460
|
-
describe('
|
|
460
|
+
describe('classic prop surface', () => {
|
|
461
461
|
it('should not break existing usage without new props', () => {
|
|
462
462
|
const wrapper = createWrapper({
|
|
463
|
-
title: '
|
|
463
|
+
title: 'Classic App',
|
|
464
464
|
subtitle: 'Old API',
|
|
465
465
|
})
|
|
466
466
|
|
|
467
|
-
expect(wrapper.find('.
|
|
467
|
+
expect(wrapper.find('.mint-topbar').exists()).toBe(true)
|
|
468
468
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(false)
|
|
469
|
-
expect(wrapper.find('.
|
|
469
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(false)
|
|
470
470
|
// Standalone badge still shows by default in standalone mode
|
|
471
|
-
expect(wrapper.find('.
|
|
471
|
+
expect(wrapper.find('.mint-topbar__standalone-badge').exists()).toBe(true)
|
|
472
472
|
})
|
|
473
473
|
|
|
474
474
|
it('should work with existing pages and tabs props', () => {
|
|
@@ -490,7 +490,7 @@ describe('AppTopBar', () => {
|
|
|
490
490
|
expect(wrapper.text()).toContain('Test Plugin')
|
|
491
491
|
expect(wrapper.text()).toContain('Dashboard')
|
|
492
492
|
expect(wrapper.findComponent(ThemeToggle).exists()).toBe(true)
|
|
493
|
-
expect(wrapper.find('.
|
|
493
|
+
expect(wrapper.find('.mint-topbar__settings-btn').exists()).toBe(true)
|
|
494
494
|
})
|
|
495
495
|
})
|
|
496
496
|
|
|
@@ -536,7 +536,7 @@ describe('AppTopBar', () => {
|
|
|
536
536
|
standaloneLabel: '🚀 Preview',
|
|
537
537
|
})
|
|
538
538
|
|
|
539
|
-
const badge = wrapper.find('.
|
|
539
|
+
const badge = wrapper.find('.mint-topbar__standalone-badge')
|
|
540
540
|
expect(badge.text()).toBe('🚀 Preview')
|
|
541
541
|
})
|
|
542
542
|
|
|
@@ -547,7 +547,7 @@ describe('AppTopBar', () => {
|
|
|
547
547
|
standaloneLabel: longLabel,
|
|
548
548
|
})
|
|
549
549
|
|
|
550
|
-
const badge = wrapper.find('.
|
|
550
|
+
const badge = wrapper.find('.mint-topbar__standalone-badge')
|
|
551
551
|
expect(badge.text()).toBe(longLabel)
|
|
552
552
|
})
|
|
553
553
|
})
|
|
@@ -619,9 +619,9 @@ describe('AppTopBar', () => {
|
|
|
619
619
|
it('should render default M logo when no plugin icon and no #icon slot', () => {
|
|
620
620
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
621
621
|
|
|
622
|
-
expect(wrapper.find('.
|
|
623
|
-
expect(wrapper.find('.
|
|
624
|
-
expect(wrapper.find('.
|
|
622
|
+
expect(wrapper.find('.mint-topbar__logo-text').exists()).toBe(true)
|
|
623
|
+
expect(wrapper.find('.mint-topbar__logo-text').text()).toBe('M')
|
|
624
|
+
expect(wrapper.find('.mint-topbar__logo-svg').exists()).toBe(false)
|
|
625
625
|
})
|
|
626
626
|
|
|
627
627
|
it('should render plugin metadata icon SVG when plugin has icon', () => {
|
|
@@ -633,10 +633,10 @@ describe('AppTopBar', () => {
|
|
|
633
633
|
|
|
634
634
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
635
635
|
|
|
636
|
-
const svg = wrapper.find('.
|
|
636
|
+
const svg = wrapper.find('.mint-topbar__logo-svg')
|
|
637
637
|
expect(svg.exists()).toBe(true)
|
|
638
638
|
expect(svg.find('path').attributes('d')).toBe(iconPath)
|
|
639
|
-
expect(wrapper.find('.
|
|
639
|
+
expect(wrapper.find('.mint-topbar__logo-text').exists()).toBe(false)
|
|
640
640
|
})
|
|
641
641
|
|
|
642
642
|
it('should not render plugin icon when #icon slot is provided', () => {
|
|
@@ -651,7 +651,7 @@ describe('AppTopBar', () => {
|
|
|
651
651
|
})
|
|
652
652
|
|
|
653
653
|
expect(wrapper.find('.custom-icon').exists()).toBe(true)
|
|
654
|
-
expect(wrapper.find('.
|
|
654
|
+
expect(wrapper.find('.mint-topbar__logo-svg').exists()).toBe(false)
|
|
655
655
|
})
|
|
656
656
|
|
|
657
657
|
it('should not render plugin icon when icon does not start with M', () => {
|
|
@@ -662,9 +662,9 @@ describe('AppTopBar', () => {
|
|
|
662
662
|
|
|
663
663
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
664
664
|
|
|
665
|
-
expect(wrapper.find('.
|
|
666
|
-
expect(wrapper.find('.
|
|
667
|
-
expect(wrapper.find('.
|
|
665
|
+
expect(wrapper.find('.mint-topbar__logo-svg').exists()).toBe(false)
|
|
666
|
+
expect(wrapper.find('.mint-topbar__logo-text').exists()).toBe(true)
|
|
667
|
+
expect(wrapper.find('.mint-topbar__logo-text').text()).toBe('M')
|
|
668
668
|
})
|
|
669
669
|
|
|
670
670
|
it('should not render plugin icon when icon is empty string', () => {
|
|
@@ -675,9 +675,9 @@ describe('AppTopBar', () => {
|
|
|
675
675
|
|
|
676
676
|
const wrapper = createWrapper({ title: 'Test App' })
|
|
677
677
|
|
|
678
|
-
expect(wrapper.find('.
|
|
679
|
-
expect(wrapper.find('.
|
|
680
|
-
expect(wrapper.find('.
|
|
678
|
+
expect(wrapper.find('.mint-topbar__logo-svg').exists()).toBe(false)
|
|
679
|
+
expect(wrapper.find('.mint-topbar__logo-text').exists()).toBe(true)
|
|
680
|
+
expect(wrapper.find('.mint-topbar__logo-text').text()).toBe('M')
|
|
681
681
|
})
|
|
682
682
|
})
|
|
683
683
|
})
|
|
@@ -68,14 +68,14 @@ describe('BaseInput', () => {
|
|
|
68
68
|
const wrapper = mount(BaseInput, {
|
|
69
69
|
props: { modelValue: '', error: true },
|
|
70
70
|
})
|
|
71
|
-
expect(wrapper.find('input').classes()).toContain('
|
|
71
|
+
expect(wrapper.find('input').classes()).toContain('mint-input--error')
|
|
72
72
|
})
|
|
73
73
|
|
|
74
74
|
it('should apply size class', () => {
|
|
75
75
|
const wrapper = mount(BaseInput, {
|
|
76
76
|
props: { modelValue: '', size: 'lg' },
|
|
77
77
|
})
|
|
78
|
-
expect(wrapper.find('input').classes()).toContain('
|
|
78
|
+
expect(wrapper.find('input').classes()).toContain('mint-input--lg')
|
|
79
79
|
})
|
|
80
80
|
})
|
|
81
81
|
|