52 lines
2.5 KiB
JavaScript
52 lines
2.5 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import { readFileSync } from 'node:fs'
|
|
import test from 'node:test'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const sidebar = readFileSync(
|
|
fileURLToPath(new URL('../src/components/layout/SidebarRail.vue', import.meta.url)),
|
|
'utf8'
|
|
)
|
|
|
|
const sidebarStyles = readFileSync(
|
|
fileURLToPath(new URL('../src/assets/styles/components/sidebar-rail.css', import.meta.url)),
|
|
'utf8'
|
|
)
|
|
|
|
const documentInbox = readFileSync(
|
|
fileURLToPath(new URL('../src/composables/useDocumentCenterInbox.js', import.meta.url)),
|
|
'utf8'
|
|
)
|
|
|
|
const documentNewState = readFileSync(
|
|
fileURLToPath(new URL('../src/utils/documentCenterNewState.js', import.meta.url)),
|
|
'utf8'
|
|
)
|
|
|
|
test('sidebar renders a red dot for unread document center rows', () => {
|
|
assert.match(sidebar, /useDocumentCenterInbox/)
|
|
assert.match(sidebar, /hasUnread: documentInboxHasUnread/)
|
|
assert.match(sidebar, /class="nav-label-text"[\s\S]*class="nav-unread-dot nav-unread-dot-label"/)
|
|
assert.match(sidebar, /class="nav-unread-dot nav-unread-dot-collapsed"/)
|
|
assert.match(sidebar, /hasNewMessage: item\.id === 'documents' \? documentInboxHasUnread\.value : false/)
|
|
assert.match(sidebar, /void refreshDocumentInbox\(\)/)
|
|
assert.match(sidebar, /startDocumentInboxPolling\(\)/)
|
|
assert.match(sidebar, /stopDocumentInboxPolling\(\)/)
|
|
assert.match(sidebarStyles, /\.nav-label-text\s*\{[\s\S]*position:\s*relative;/)
|
|
assert.match(sidebarStyles, /\.nav-unread-dot\s*\{[\s\S]*background:\s*#ef4444;/)
|
|
assert.match(sidebarStyles, /\.nav-unread-dot-label\s*\{[\s\S]*position:\s*absolute;[\s\S]*top:\s*-8px;/)
|
|
assert.match(sidebarStyles, /\.rail-collapsed \.nav-unread-dot-collapsed\s*\{[\s\S]*position:\s*absolute;/)
|
|
})
|
|
|
|
test('document inbox reuses document center viewed-key state', () => {
|
|
assert.match(documentInbox, /DOCUMENT_VIEWED_KEYS_CHANGE_EVENT/)
|
|
assert.match(documentInbox, /readViewedDocumentKeys/)
|
|
assert.match(documentInbox, /countNewDocuments\(documentRows\.value, viewedDocumentKeys\.value\)/)
|
|
assert.match(documentInbox, /fetchExpenseClaims/)
|
|
assert.match(documentInbox, /fetchApprovalExpenseClaims/)
|
|
assert.match(documentInbox, /fetchArchivedExpenseClaims/)
|
|
assert.match(documentInbox, /window\.addEventListener\(DOCUMENT_VIEWED_KEYS_CHANGE_EVENT, refreshViewedDocumentKeys\)/)
|
|
assert.match(documentNewState, /export const DOCUMENT_VIEWED_KEYS_CHANGE_EVENT/)
|
|
assert.match(documentNewState, /window\.dispatchEvent\(new CustomEvent\(DOCUMENT_VIEWED_KEYS_CHANGE_EVENT\)\)/)
|
|
})
|