mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-07-04 20:02:13 -04:00
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:
parent
babfaab4df
commit
c7a2dea4d1
21 changed files with 1092 additions and 552 deletions
55
src/tests/backend-new/specs/skiplist.ts
Normal file
55
src/tests/backend-new/specs/skiplist.ts
Normal 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]);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue