UNPKG

@bscotch/gml-parser

Version:

A parser for GML (GameMaker Language) files for programmatic manipulation and analysis of GameMaker projects.

63 lines 2.49 kB
import { isBeforeRange, isInRange, ok } from './util.js'; export function assertThrows(fn, message) { try { fn(); } catch (e) { return; } throw new Error(message || 'Expected function to throw'); } export async function assertThrowsAsync(fn, message) { try { await fn(); } catch (e) { return; } throw new Error(message || 'Expected function to throw'); } describe('Util', function () { it('can determine if a position is within a range', function () { const range = { start: { line: 10, column: 6, offset: 331 }, end: { line: 17, column: 3, offset: 500 }, }; ok(!isInRange(range, { line: 9, column: 1 })); ok(isInRange(range, { line: 10, column: 6 })); ok(isInRange(range, { line: 10, column: 7 })); ok(!isInRange(range, { line: 10, column: 5 })); ok(isInRange(range, { line: 11, column: 1 })); ok(isInRange(range, { line: 11, column: 10 })); ok(isInRange(range, { line: 17, column: 1 })); ok(isInRange(range, { line: 17, column: 3 })); ok(!isInRange(range, { line: 17, column: 4 })); ok(!isInRange(range, { line: 18, column: 1 })); }); it('can determine if a position is within a single line range', function () { const range = { start: { line: 10, column: 6, offset: 331 }, end: { line: 10, column: 10, offset: 335 }, }; ok(!isInRange(range, { line: 9, column: 1 })); ok(!isInRange(range, { line: 11, column: 1 })); ok(!isInRange(range, { line: 10, column: 5 })); ok(!isInRange(range, { line: 10, column: 11 })); ok(isInRange(range, { line: 10, column: 6 })); ok(isInRange(range, { line: 10, column: 7 })); ok(isInRange(range, { line: 10, column: 10 })); }); it('can determine if a position is before a range', function () { const range = { start: { line: 10, column: 6, offset: 331 }, end: { line: 17, column: 3, offset: 500 }, }; ok(isBeforeRange(range, { line: 9, column: 1 })); ok(isBeforeRange(range, { line: 10, column: 5 })); ok(!isBeforeRange(range, { line: 10, column: 6 })); ok(!isBeforeRange(range, { line: 11, column: 1 })); ok(!isBeforeRange(range, { line: 17, column: 1 })); ok(!isBeforeRange(range, { line: 20, column: 3 })); }); }); //# sourceMappingURL=util.test.js.map