|
| 1 | +import { defaultTabs } from './defaultTabs'; |
| 2 | +import { mergeTabs } from './utils'; |
| 3 | + |
| 4 | +describe('mergeTabs', () => { |
| 5 | + it('should return defaultTabs when no overrides are provided', () => { |
| 6 | + const result = mergeTabs({}); |
| 7 | + const expected = Object.entries(defaultTabs); |
| 8 | + expect(result).toEqual(expected); |
| 9 | + }); |
| 10 | + |
| 11 | + it('should merge entityTabOverrides with defaultTabs', () => { |
| 12 | + const overrides = { |
| 13 | + '/docs': { |
| 14 | + title: 'My Documentation', |
| 15 | + mountPoint: 'entity.page.docs', |
| 16 | + priority: 2, |
| 17 | + }, |
| 18 | + }; |
| 19 | + const result = mergeTabs(overrides); |
| 20 | + expect(result).toContainEqual(['/docs', overrides['/docs']]); |
| 21 | + }); |
| 22 | + |
| 23 | + it('should remove tabs with negative priority', () => { |
| 24 | + const overrides = { |
| 25 | + '/ci': { ...defaultTabs['/ci'], priority: -1 }, |
| 26 | + }; |
| 27 | + const result = mergeTabs(overrides); |
| 28 | + expect(result.find(([key]) => key === '/ci')).toBeUndefined(); |
| 29 | + }); |
| 30 | + |
| 31 | + it('should sort tabs based on priority', () => { |
| 32 | + const overrides = { |
| 33 | + '/docs': { ...defaultTabs['/docs'], priority: 5 }, |
| 34 | + '/topology': { |
| 35 | + title: 'New Topology', |
| 36 | + mountPoint: 'entity.page.topology', |
| 37 | + priority: 10, |
| 38 | + }, |
| 39 | + }; |
| 40 | + const result = mergeTabs(overrides); |
| 41 | + expect(result[0][0]).toBe('/topology'); |
| 42 | + expect(result[1][0]).toBe('/docs'); |
| 43 | + }); |
| 44 | +}); |
0 commit comments