Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

quickshell/nuguland/launch.test.js

Raw
const assert = require('assert');
const L = require('./launch.js');

assert.deepStrictEqual(L.prefixIntent('=2+2'), { intent: 'app', query: '=2+2' });
assert.deepStrictEqual(L.prefixIntent('firefox'), { intent: 'app', query: 'firefox' });

const exact = L.fuzzyScore('firefox', 'firefox', 0);
const prefix = L.fuzzyScore('fire', 'firefox', 0);
const wbSub = L.fuzzyScore('fb', 'firefox browser', 0);
const loose = L.fuzzyScore('frfx', 'firefox', 0);
assert.ok(exact > prefix, 'exact > prefix');
assert.ok(prefix > wbSub, 'prefix > word-boundary subsequence');
assert.ok(wbSub > loose, 'word-boundary subsequence > loose subsequence');
assert.ok(loose >= 0, 'loose subsequence is a match');
assert.strictEqual(L.fuzzyScore('zzz', 'firefox', 0), -1);
assert.strictEqual(L.fuzzyScore('', 'anything', 900), 900);

const apps = L.buildApps([
    {
        id: 'gimp',
        name: 'GIMP',
        icon: 'gimp',
        comment: 'Image editor',
        genericName: 'Image Editor',
        categories: ['Graphics'],
        keywords: ['paint', 'photo']
    },
    {
        id: 'firefox',
        name: 'Firefox',
        icon: 'firefox-icon',
        genericName: 'Web Browser',
        categories: ['Network'],
        keywords: ['web', 'browser'],
        actions: [
            { id: 'new-window', name: 'New Window', icon: 'window-new', command: ['firefox', '--new-window'] },
            { id: 'private-window', name: 'Private Window', command: ['firefox', '--private-window'] }
        ]
    }
]);

assert.deepStrictEqual(apps.map(a => a.title), ['Firefox', 'GIMP']);
assert.strictEqual(apps[0].icon, 'firefox-icon');
assert.strictEqual(apps[0].id, 'app:firefox');
assert.strictEqual(apps[0].desktopPath, 'firefox.desktop');
assert.strictEqual(apps[0].subtitle, 'Web Browser · Network');
assert.strictEqual(apps[0].details[0].value, 'Network');
assert.strictEqual(apps[0].details[1].value, 'web; browser');
assert.strictEqual(apps[0].actions[0].title, 'New Window');
assert.deepStrictEqual(apps[0].actions[0].execArgv, ['firefox', '--new-window']);
assert.ok(L.buildApps([{ id: 'noname' }]).length === 0);

const titleRank = L.rankResults('Firefox', { apps });
assert.strictEqual(titleRank.providerIntent, 'app');
assert.strictEqual(titleRank.selectedIndex, 0);
assert.strictEqual(titleRank.results[0].title, 'Firefox');
assert.strictEqual(titleRank.results[0].provider, 'app');
assert.strictEqual(titleRank.results[0].icon, 'firefox-icon');

const keywordRank = L.rankResults('browser', { apps });
assert.strictEqual(keywordRank.results[0].title, 'Firefox');
assert.ok(keywordRank.results.every(r => r.provider === 'app'));

const emptyRank = L.rankResults('', { apps });
assert.strictEqual(emptyRank.selectedIndex, 0);
assert.deepStrictEqual(emptyRank.results.map(r => r.title), ['Firefox', 'GIMP']);

console.log('launch.test.js: ALL PASS');