UNPKG

vexflow

Version:

A JavaScript library for rendering music notation and guitar tablature.

37 lines (36 loc) 1.3 kB
import { VexFlow } from '../src/vexflow.js'; import { VexFlowTests } from './vexflow_test_helpers.js'; import { TickContext } from '../src/tickcontext.js'; import { MockTickable } from './mocks.js'; const TickContextTests = { Start() { QUnit.module('TickContext'); QUnit.test('Current Tick Test', currentTick); QUnit.test('Tracking Test', tracking); }, }; function currentTick(assert) { const tc = new TickContext(); assert.equal(tc.getCurrentTick().value(), 0, 'New tick context has no ticks'); } function tracking(assert) { const BEAT = (1 * VexFlow.RESOLUTION) / 4; const tickables = [ new MockTickable().setTicks(BEAT).setWidth(10), new MockTickable().setTicks(BEAT * 2).setWidth(20), new MockTickable().setTicks(BEAT).setWidth(30), ]; const tc = new TickContext(); tc.setPadding(0); tc.addTickable(tickables[0]); assert.equal(tc.getMaxTicks().value(), BEAT); tc.addTickable(tickables[1]); assert.equal(tc.getMaxTicks().value(), BEAT * 2); tc.addTickable(tickables[2]); assert.equal(tc.getMaxTicks().value(), BEAT * 2); assert.equal(tc.getWidth(), 0); tc.preFormat(); assert.equal(tc.getWidth(), 30); } VexFlowTests.register(TickContextTests); export { TickContextTests };