// example using ava test runner
import test from 'ava'
import { setupDOM } from '@litecanvas/jsdom-extras'
import litecanvas from 'litecanvas'
/** @type {LitecanvasInstance} */
let local
test.before(() => {
setupDOM()
local = litecanvas({
global: false,
})
})
test.after(() => {
local.quit()
})
test('test', async (t) => {
// `onLitecanvas()` returns a promise
// and resolve it by default after after that event
const event = 'init'
await onLitecanvas(local, event, () => {
t.is(Math.PI, local.PI)
})
})
test('another test', async (t) => {
const event = 'update'
await onLitecanvas(local, event, (dt) => {
// if elapsed time is less than 2 seconds
if (local.T < 2) {
// return `false` to not resolve the promise yet
// and keep that event listener
return false
} else {
// that test will run after 2 seconds
t.pass()
}
})
})
// example using ava test runner
import test from 'ava'
import { setupDOM } from '@litecanvas/jsdom-extras'
test.before(() => {
setupDOM()
})
test('test canvas', (t) => {
const canvas = document.createElement('canvas')
const ctx = canvas.getContext('2d')
// draw a filled rect
_fillRect(ctx, 0, 0, 300, 150, '#FF0000')
// test the rendering context latest calls
const expected = ['set fillStyle #FF0000', 'fillRect(0,0,300,150)']
const actual = ctx._calls.slice(-expected.length)
t.deepEqual(actual, expected)
})
function _fillRect(ctx, x, y, w, h, color) {
ctx.fillStyle = color
ctx.fillRect(x, y, w, h)
}