Feat/frontend vitest (#6469)

* Added vitest tests.

* Added Settings tests to vitest - not working

* Added attributes and attributemap to vitest.

* Added more tests.

* Also run the vitest tests.

* Also run withoutPlugins

* Fixed pnpm lock
This commit is contained in:
SamTV12345 2024-08-16 22:55:42 +02:00 committed by GitHub
parent babfaab4df
commit c7a2dea4d1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 1092 additions and 552 deletions

View file

@ -0,0 +1,55 @@
'use strict';
const SkipList = require('ep_etherpad-lite/static/js/skiplist');
import {expect, describe, it} from 'vitest';
describe('skiplist.js', function () {
it('rejects null keys', async function () {
const skiplist = new SkipList();
for (const key of [undefined, null]) {
expect(() => skiplist.push({key})).toThrowError();
}
});
it('rejects duplicate keys', async function () {
const skiplist = new SkipList();
skiplist.push({key: 'foo'});
expect(() => skiplist.push({key: 'foo'})).toThrowError();
});
it('atOffset() returns last entry that touches offset', async function () {
const skiplist = new SkipList();
const entries: { key: string; width: number; }[] = [];
let nextId = 0;
const makeEntry = (width: number) => {
const entry = {key: `id${nextId++}`, width};
entries.push(entry);
return entry;
};
skiplist.push(makeEntry(5));
expect(skiplist.atOffset(4)).toBe(entries[0]);
expect(skiplist.atOffset(5)).toBe(entries[0]);
expect(() => skiplist.atOffset(6)).toThrowError();
skiplist.push(makeEntry(0));
expect(skiplist.atOffset(4)).toBe(entries[0]);
expect(skiplist.atOffset(5)).toBe(entries[1]);
expect(() => skiplist.atOffset(6)).toThrowError();
skiplist.push(makeEntry(0));
expect(skiplist.atOffset(4)).toBe(entries[0]);
expect(skiplist.atOffset(5)).toBe(entries[2]);
expect(() => skiplist.atOffset(6)).toThrowError();
skiplist.splice(2, 0, [makeEntry(0)]);
expect(skiplist.atOffset(4)).toBe(entries[0]);
expect(skiplist.atOffset(5)).toBe(entries[2]);
expect(() => skiplist.atOffset(6)).toThrowError();
skiplist.push(makeEntry(3));
expect(skiplist.atOffset(4)).toBe(entries[0]);
expect(skiplist.atOffset(5)).toBe(entries[4]);
expect(skiplist.atOffset(6)).toBe(entries[4]);
});
});