mirror of
https://github.com/penpot/penpot.git
synced 2025-05-21 03:26:11 +02:00
✨ Import text-editor code into the repository
This commit is contained in:
parent
68397edd4d
commit
04a0d867b0
65 changed files with 11112 additions and 7 deletions
frontend/text-editor/editor/controllers
|
@ -0,0 +1,36 @@
|
|||
import { expect, describe, test, vi } from 'vitest'
|
||||
import ChangeController from './ChangeController'
|
||||
|
||||
describe("ChangeController", () => {
|
||||
test("Creating a ChangeController without a valid time should throw", () => {
|
||||
expect(() => new ChangeController(Infinity)).toThrowError('Invalid time')
|
||||
});
|
||||
|
||||
test("A ChangeController should dispatch an event when `notifyImmediately` is called", () => {
|
||||
const changeListener = vi.fn();
|
||||
const changeController = new ChangeController(10);
|
||||
changeController.addEventListener("change", changeListener)
|
||||
changeController.notifyImmediately();
|
||||
expect(changeController.hasPendingChanges).toBe(false);
|
||||
expect(changeListener).toBeCalled(1);
|
||||
});
|
||||
|
||||
test("A ChangeController should dispatch an event when `notifyDebounced` is called", async () => {
|
||||
return new Promise((resolve) => {
|
||||
const changeController = new ChangeController(10);
|
||||
changeController.addEventListener("change", () => resolve());
|
||||
changeController.notifyDebounced();
|
||||
expect(changeController.hasPendingChanges).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
test("A ChangeController should dispatch an event when `notifyDebounced` is called and disposed is called right after", async () => {
|
||||
return new Promise((resolve) => {
|
||||
const changeController = new ChangeController(10);
|
||||
changeController.addEventListener("change", () => resolve());
|
||||
changeController.notifyDebounced();
|
||||
expect(changeController.hasPendingChanges).toBe(true);
|
||||
changeController.dispose();
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue