Files
lucia-frontend/tests/stores/pageAdmin.test.js
2026-03-06 14:47:57 +08:00

91 lines
2.9 KiB
JavaScript

import { describe, it, expect, beforeEach } from 'vitest';
import { setActivePinia, createPinia } from 'pinia';
import { usePageAdminStore } from '@/stores/pageAdmin';
describe('pageAdminStore', () => {
let store;
beforeEach(() => {
setActivePinia(createPinia());
store = usePageAdminStore();
});
it('has correct default state', () => {
expect(store.activePage).toBe('MAP');
expect(store.previousPage).toBe('MAP');
expect(store.pendingActivePage).toBe('FILES');
expect(store.isPagePending).toBe(false);
expect(store.shouldKeepPreviousPage).toBe(false);
expect(store.currentMapFile).toBe('');
});
it('setActivePage converts page name', () => {
store.setActivePage('CheckConformance');
expect(store.activePage).toBe('CONFORMANCE');
});
it('setPreviousPage converts page name', () => {
store.setPreviousPage('CheckPerformance');
expect(store.previousPage).toBe('PERFORMANCE');
});
it('setPreviousPageUsingActivePage copies activePage to previousPage', () => {
store.setActivePage('CONFORMANCE');
store.setPreviousPageUsingActivePage();
expect(store.previousPage).toBe('CONFORMANCE');
});
it('setIsPagePendingBoolean sets boolean', () => {
store.setIsPagePendingBoolean(true);
expect(store.isPagePending).toBe(true);
});
it('setPendingActivePage converts and sets page', () => {
store.setPendingActivePage('CheckMap');
expect(store.pendingActivePage).toBe('MAP');
});
it('copyPendingPageToActivePage transfers value', () => {
store.setPendingActivePage('CheckConformance');
store.copyPendingPageToActivePage();
expect(store.activePage).toBe('CONFORMANCE');
});
it('clearPendingActivePage resets to empty', () => {
store.setPendingActivePage('CheckMap');
store.clearPendingActivePage();
expect(store.pendingActivePage).toBe('');
});
it('keepPreviousPage restores previous page', () => {
store.setPreviousPage('CONFORMANCE');
store.setActivePage('PERFORMANCE');
store.keepPreviousPage();
expect(store.activePage).toBe('CONFORMANCE');
expect(store.shouldKeepPreviousPage).toBe(true);
});
it('clearShouldKeepPreviousPageBoolean resets flag', () => {
store.keepPreviousPage();
store.clearShouldKeepPreviousPageBoolean();
expect(store.shouldKeepPreviousPage).toBe(false);
});
it('setCurrentMapFile sets file name', () => {
store.setCurrentMapFile('test.csv');
expect(store.currentMapFile).toBe('test.csv');
});
it('setActivePageComputedByRoute extracts route name', () => {
const routeMatched = [{ name: 'CheckMap' }];
store.setActivePageComputedByRoute(routeMatched);
expect(store.activePageComputedByRoute).toBe('MAP');
});
it('setActivePageComputedByRoute handles empty array', () => {
store.setActivePageComputedByRoute([]);
// Should not change default value
expect(store.activePageComputedByRoute).toBe('MAP');
});
});