28 lines
1.4 KiB
JavaScript
28 lines
1.4 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert');
|
|
const { cardActions, swipeDirection, tabSwipeIndex } = require('./f7-layout');
|
|
|
|
test('cardActions: every view gets Queue, removable rows get Playlist and Remove', () => {
|
|
assert.deepStrictEqual(cardActions('queue', true).left.map((a) => a.act), ['queue']);
|
|
assert.deepStrictEqual(cardActions('queue', true).right.map((a) => a.act), ['playlist', 'remove']);
|
|
assert.deepStrictEqual(cardActions('search', false).left.map((a) => a.act), ['queue']);
|
|
assert.deepStrictEqual(cardActions('search', false).right.map((a) => a.act), ['playlist']);
|
|
});
|
|
|
|
test('swipeDirection classifies clear swipes and ignores short or diagonal drags', () => {
|
|
assert.strictEqual(swipeDirection(-80, 5), 'left');
|
|
assert.strictEqual(swipeDirection(80, -10), 'right');
|
|
assert.strictEqual(swipeDirection(4, -70), 'up');
|
|
assert.strictEqual(swipeDirection(10, 20), null);
|
|
assert.strictEqual(swipeDirection(60, 60), null);
|
|
assert.strictEqual(swipeDirection(40, 0, 36), 'right');
|
|
});
|
|
|
|
test('tabSwipeIndex moves between bottom tabs and clamps at either end', () => {
|
|
assert.strictEqual(tabSwipeIndex(0, 5, 'left'), 1);
|
|
assert.strictEqual(tabSwipeIndex(3, 5, 'right'), 2);
|
|
assert.strictEqual(tabSwipeIndex(4, 5, 'left'), 4);
|
|
assert.strictEqual(tabSwipeIndex(0, 5, 'right'), 0);
|
|
assert.strictEqual(tabSwipeIndex(2, 5, 'up'), -1);
|
|
});
|