62 lines
2.3 KiB
JavaScript
62 lines
2.3 KiB
JavaScript
import { test, expect } from '../fixtures.js'
|
|
|
|
test.describe('clear module', () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto('/tests/unit-harness.html')
|
|
await page.waitForFunction(() => Boolean(window.svgHarness))
|
|
})
|
|
|
|
test('clears canvas content and sets default attributes', async ({ page }) => {
|
|
const result = await page.evaluate(() => {
|
|
const { clearModule } = window.svgHarness
|
|
const svgContent = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
svgContent.append(document.createElementNS('http://www.w3.org/2000/svg', 'rect'))
|
|
const svgRoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
const canvas = {
|
|
getCurConfig: () => ({ dimensions: [100, 50], show_outside_canvas: false }),
|
|
getSvgContent: () => svgContent,
|
|
getSvgRoot: () => svgRoot,
|
|
getDOMDocument: () => document
|
|
}
|
|
|
|
clearModule.init(canvas)
|
|
clearModule.clearSvgContentElementInit()
|
|
const comment = svgContent.firstChild
|
|
|
|
return {
|
|
childCount: svgContent.childNodes.length,
|
|
isComment: comment.nodeType,
|
|
overflow: svgContent.getAttribute('overflow'),
|
|
width: svgContent.getAttribute('width'),
|
|
height: svgContent.getAttribute('height'),
|
|
appended: svgRoot.contains(svgContent)
|
|
}
|
|
})
|
|
|
|
expect(result.childCount).toBe(1)
|
|
expect(result.isComment).toBe(8)
|
|
expect(result.overflow).toBe('hidden')
|
|
expect(result.width).toBe('100')
|
|
expect(result.height).toBe('50')
|
|
expect(result.appended).toBe(true)
|
|
})
|
|
|
|
test('honors show_outside_canvas flag when clearing', async ({ page }) => {
|
|
const overflow = await page.evaluate(() => {
|
|
const { clearModule } = window.svgHarness
|
|
const svgContent = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
const svgRoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
|
|
clearModule.init({
|
|
getCurConfig: () => ({ dimensions: [10, 20], show_outside_canvas: true }),
|
|
getSvgContent: () => svgContent,
|
|
getSvgRoot: () => svgRoot,
|
|
getDOMDocument: () => document
|
|
})
|
|
clearModule.clearSvgContentElementInit()
|
|
return svgContent.getAttribute('overflow')
|
|
})
|
|
|
|
expect(overflow).toBe('visible')
|
|
})
|
|
})
|