2026-05-09 05:59:46 +00:00
|
|
|
import assert from 'node:assert/strict'
|
|
|
|
|
|
2026-05-09 07:29:49 +00:00
|
|
|
import {
|
|
|
|
|
resolveKnowledgePreviewMode,
|
|
|
|
|
shouldRenderOnlyOfficeHost,
|
|
|
|
|
shouldRenderOnlyOfficePreview
|
|
|
|
|
} from '../src/views/scripts/knowledgePreviewMode.js'
|
2026-05-09 05:59:46 +00:00
|
|
|
|
|
|
|
|
function testPrefersOnlyOfficeForSupportedOfficeFileWhenAvailable() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'xlsx',
|
|
|
|
|
previewKind: 'table'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(resolveKnowledgePreviewMode(document, { onlyOfficeAvailable: true }), 'onlyoffice')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testFallsBackToStructuredPreviewForOfficeFileWhenOnlyOfficeUnavailable() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'xlsx',
|
|
|
|
|
previewKind: 'table'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(resolveKnowledgePreviewMode(document, { onlyOfficeAvailable: false }), 'table')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testUsesPreviewKindForNonOnlyOfficeFile() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'pdf',
|
|
|
|
|
previewKind: 'pdf'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(resolveKnowledgePreviewMode(document, { onlyOfficeAvailable: false }), 'pdf')
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-09 07:29:49 +00:00
|
|
|
function testRendersOnlyOfficeContainerWhileOfficePreviewIsLoading() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'docx',
|
|
|
|
|
previewKind: 'text'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficePreview(document, {
|
|
|
|
|
onlyOfficeLoading: true,
|
|
|
|
|
onlyOfficeAvailable: false
|
|
|
|
|
}),
|
|
|
|
|
true
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testKeepsOnlyOfficeContainerVisibleWhenOfficePreviewHasError() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'docx',
|
|
|
|
|
previewKind: 'text'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficePreview(document, {
|
|
|
|
|
onlyOfficeLoading: false,
|
|
|
|
|
onlyOfficeAvailable: false,
|
|
|
|
|
onlyOfficeError: 'timeout'
|
|
|
|
|
}),
|
|
|
|
|
true
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testDoesNotRenderOnlyOfficeContainerAfterFailedMount() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'xlsx',
|
|
|
|
|
previewKind: 'table'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficePreview(document, {
|
|
|
|
|
onlyOfficeLoading: false,
|
|
|
|
|
onlyOfficeAvailable: false
|
|
|
|
|
}),
|
|
|
|
|
false
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testRendersOnlyOfficeHostWhileOfficePreviewIsLoading() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'pptx',
|
|
|
|
|
previewKind: 'slides'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficeHost(document, {
|
|
|
|
|
onlyOfficeLoading: true,
|
|
|
|
|
onlyOfficeAvailable: false
|
|
|
|
|
}),
|
|
|
|
|
true
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testKeepsOnlyOfficeHostVisibleWhenOfficePreviewHasError() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'xlsx',
|
|
|
|
|
previewKind: 'table'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficeHost(document, {
|
|
|
|
|
onlyOfficeLoading: false,
|
|
|
|
|
onlyOfficeAvailable: false,
|
|
|
|
|
onlyOfficeError: 'timeout'
|
|
|
|
|
}),
|
|
|
|
|
true
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testDoesNotRenderOnlyOfficeHostForNonOfficeDocuments() {
|
|
|
|
|
const document = {
|
|
|
|
|
extension: 'pdf',
|
|
|
|
|
previewKind: 'pdf'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
|
shouldRenderOnlyOfficeHost(document, {
|
|
|
|
|
onlyOfficeLoading: true,
|
|
|
|
|
onlyOfficeAvailable: false
|
|
|
|
|
}),
|
|
|
|
|
false
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-09 05:59:46 +00:00
|
|
|
function run() {
|
|
|
|
|
testPrefersOnlyOfficeForSupportedOfficeFileWhenAvailable()
|
|
|
|
|
testFallsBackToStructuredPreviewForOfficeFileWhenOnlyOfficeUnavailable()
|
|
|
|
|
testUsesPreviewKindForNonOnlyOfficeFile()
|
2026-05-09 07:29:49 +00:00
|
|
|
testRendersOnlyOfficeContainerWhileOfficePreviewIsLoading()
|
|
|
|
|
testKeepsOnlyOfficeContainerVisibleWhenOfficePreviewHasError()
|
|
|
|
|
testDoesNotRenderOnlyOfficeContainerAfterFailedMount()
|
|
|
|
|
testRendersOnlyOfficeHostWhileOfficePreviewIsLoading()
|
|
|
|
|
testKeepsOnlyOfficeHostVisibleWhenOfficePreviewHasError()
|
|
|
|
|
testDoesNotRenderOnlyOfficeHostForNonOfficeDocuments()
|
2026-05-09 05:59:46 +00:00
|
|
|
console.log('knowledge preview mode tests passed')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
run()
|