Browse Source

Update jest

nested-css-rules
Artur Arseniev 4 months ago
parent
commit
8661f4c32b
  1. 10
      package.json
  2. 2
      packages/core/jest.config.js
  3. 4
      packages/core/package.json
  4. 5
      packages/core/test/setup.js
  5. 2
      packages/core/test/specs/asset_manager/view/AssetImageView.ts
  6. 2
      packages/core/test/specs/asset_manager/view/AssetsView.ts
  7. 20
      packages/core/test/specs/block_manager/index.ts
  8. 18
      packages/core/test/specs/canvas/index.ts
  9. 2
      packages/core/test/specs/css_composer/view/CssRulesView.ts
  10. 2
      packages/core/test/specs/data_sources/__snapshots__/jsonplaceholder.ts.snap
  11. 2
      packages/core/test/specs/data_sources/__snapshots__/serialization.ts.snap
  12. 2
      packages/core/test/specs/data_sources/__snapshots__/storage.ts.snap
  13. 2
      packages/core/test/specs/data_sources/model/data_collection/__snapshots__/ComponentDataCollection.ts.snap
  14. 2
      packages/core/test/specs/data_sources/model/data_collection/__snapshots__/ComponentDataCollectionWithDataVariable.ts.snap
  15. 2
      packages/core/test/specs/data_sources/model/data_collection/__snapshots__/nestedComponentDataCollections.ts.snap
  16. 4
      packages/core/test/specs/data_sources/transformers.ts
  17. 20
      packages/core/test/specs/device_manager/index.js
  18. 2
      packages/core/test/specs/dom_components/model/Component.ts
  19. 2
      packages/core/test/specs/dom_components/view/ComponentsView.ts
  20. 6
      packages/core/test/specs/i18n/index.ts
  21. 6
      packages/core/test/specs/keymaps/index.js
  22. 8
      packages/core/test/specs/pages/index.ts
  23. 4
      packages/core/test/specs/panels/index.ts
  24. 4
      packages/core/test/specs/panels/view/ButtonView.ts
  25. 2
      packages/core/test/specs/panels/view/ButtonsView.ts
  26. 2
      packages/core/test/specs/panels/view/PanelsView.ts
  27. 4
      packages/core/test/specs/selector_manager/e2e/ClassManager.ts
  28. 20
      packages/core/test/specs/selector_manager/index.ts
  29. 2
      packages/core/test/specs/selector_manager/view/ClassTagView.ts
  30. 10
      packages/core/test/specs/selector_manager/view/ClassTagsView.ts
  31. 2
      packages/core/test/specs/storage_manager/index.ts
  32. 6
      packages/core/test/specs/storage_manager/model/Models.js
  33. 2435
      pnpm-lock.yaml

10
package.json

@ -34,8 +34,8 @@
"@babel/preset-typescript": "7.24.7", "@babel/preset-typescript": "7.24.7",
"@babel/runtime": "7.25.6", "@babel/runtime": "7.25.6",
"babel-loader": "9.1.3", "babel-loader": "9.1.3",
"@jest/globals": "29.7.0", "@jest/globals": "30.4.1",
"@types/jest": "29.5.12", "@types/jest": "30.0.0",
"@types/node": "22.4.1", "@types/node": "22.4.1",
"@types/underscore": "^1.11.15", "@types/underscore": "^1.11.15",
"@typescript-eslint/eslint-plugin": "8.10.0", "@typescript-eslint/eslint-plugin": "8.10.0",
@ -52,14 +52,16 @@
"eslint-plugin-prettier": "5.2.1", "eslint-plugin-prettier": "5.2.1",
"eslint-plugin-promise": "7.1.0", "eslint-plugin-promise": "7.1.0",
"eslint-plugin-react-hooks": "4.6.2", "eslint-plugin-react-hooks": "4.6.2",
"jest": "29.7.0", "jest": "30.4.1",
"prettier": "3.3.3", "prettier": "3.3.3",
"ts-jest": "29.2.4",
"ts-loader": "9.5.2", "ts-loader": "9.5.2",
"ts-node": "10.9.2", "ts-node": "10.9.2",
"typescript": "5.5.4" "typescript": "5.5.4"
}, },
"pnpm": { "pnpm": {
"overrides": {
"jest-environment-jsdom>jsdom": "27.4.0"
},
"peerDependencyRules": { "peerDependencyRules": {
"ignoreMissing": [ "ignoreMissing": [
"@babel/*", "@babel/*",

2
packages/core/jest.config.js

@ -1,4 +1,4 @@
/** @type {import('ts-jest').JestConfigWithTsJest} */ /** @type {import('jest').Config} */
module.exports = { module.exports = {
testEnvironment: 'jsdom', testEnvironment: 'jsdom',
moduleFileExtensions: ['js', 'ts'], moduleFileExtensions: ['js', 'ts'],

4
packages/core/package.json

@ -43,8 +43,8 @@
"@types/markdown-it": "14.1.2", "@types/markdown-it": "14.1.2",
"@types/pretty": "^2.0.3", "@types/pretty": "^2.0.3",
"grapesjs-cli": "workspace:^", "grapesjs-cli": "workspace:^",
"jest-environment-jsdom": "29.7.0", "jest-environment-jsdom": "30.4.1",
"jsdom": "24.1.1", "jsdom": "27.4.0",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"postcss": "8", "postcss": "8",
"pretty": "2.0.0", "pretty": "2.0.0",

5
packages/core/test/setup.js

@ -18,4 +18,7 @@ global._ = _;
global.__GJS_VERSION__ = ''; global.__GJS_VERSION__ = '';
global.grapesjs = require('./../src').default; global.grapesjs = require('./../src').default;
global.$ = global.grapesjs.$; global.$ = global.grapesjs.$;
global.localStorage = localStorage; Object.defineProperty(global, 'localStorage', {
value: localStorage,
configurable: true,
});

2
packages/core/test/specs/asset_manager/view/AssetImageView.ts

@ -58,6 +58,6 @@ describe('AssetImageView', () => {
const fn = jest.fn(); const fn = jest.fn();
obj.model.on('remove', fn); obj.model.on('remove', fn);
obj.onRemove({ stopImmediatePropagation() {} } as any); obj.onRemove({ stopImmediatePropagation() {} } as any);
expect(fn).toBeCalledTimes(1); expect(fn).toHaveBeenCalledTimes(1);
}); });
}); });

2
packages/core/test/specs/asset_manager/view/AssetsView.ts

@ -34,7 +34,7 @@ describe('AssetsView', () => {
test('Add new asset', () => { test('Add new asset', () => {
const spy = jest.spyOn(obj, 'addAsset'); const spy = jest.spyOn(obj, 'addAsset');
coll.add({ src: 'test' }); coll.add({ src: 'test' });
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Render new asset', () => { test('Render new asset', () => {

20
packages/core/test/specs/block_manager/index.ts

@ -80,9 +80,9 @@ describe('BlockManager', () => {
editor.on(obj.events.add, eventAdd); editor.on(obj.events.add, eventAdd);
editor.on(obj.events.all, eventAll); editor.on(obj.events.all, eventAll);
const added = obj.add(idTest, optsTest); const added = obj.add(idTest, optsTest);
expect(eventAdd).toBeCalledTimes(1); expect(eventAdd).toHaveBeenCalledTimes(1);
expect(eventAdd).toBeCalledWith(added, expect.anything()); expect(eventAdd).toHaveBeenCalledWith(added, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
test('Remove triggers proper events', () => { test('Remove triggers proper events', () => {
@ -95,10 +95,10 @@ describe('BlockManager', () => {
editor.on(obj.events.all, eventAll); editor.on(obj.events.all, eventAll);
const removed = obj.remove(idTest); const removed = obj.remove(idTest);
expect(obj.getAll().length).toBe(0); expect(obj.getAll().length).toBe(0);
expect(eventBfRm).toBeCalledTimes(1); expect(eventBfRm).toHaveBeenCalledTimes(1);
expect(eventRm).toBeCalledTimes(1); expect(eventRm).toHaveBeenCalledTimes(1);
expect(eventRm).toBeCalledWith(removed, expect.anything()); expect(eventRm).toHaveBeenCalledWith(removed, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
test('Update triggers proper events', () => { test('Update triggers proper events', () => {
@ -109,9 +109,9 @@ describe('BlockManager', () => {
editor.on(obj.events.update, eventUp); editor.on(obj.events.update, eventUp);
editor.on(obj.events.all, eventAll); editor.on(obj.events.all, eventAll);
added.set(newProps); added.set(newProps);
expect(eventUp).toBeCalledTimes(1); expect(eventUp).toHaveBeenCalledTimes(1);
expect(eventUp).toBeCalledWith(added, newProps, expect.anything()); expect(eventUp).toHaveBeenCalledWith(added, newProps, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
}); });
}); });

18
packages/core/test/specs/canvas/index.ts

@ -139,10 +139,10 @@ describe('Canvas', () => {
em.on(canvas.events.spotAdd, eventAdd); em.on(canvas.events.spotAdd, eventAdd);
em.on(canvas.events.spot, eventAll); em.on(canvas.events.spot, eventAll);
const spot = canvas.addSpot({ type: Select }); const spot = canvas.addSpot({ type: Select });
expect(eventAdd).toBeCalledTimes(1); expect(eventAdd).toHaveBeenCalledTimes(1);
expect(eventAdd).toBeCalledWith({ spot }); expect(eventAdd).toHaveBeenCalledWith({ spot });
setTimeout(() => { setTimeout(() => {
expect(eventAll).toBeCalledTimes(1); expect(eventAll).toHaveBeenCalledTimes(1);
done(); done();
}); });
}); });
@ -155,10 +155,10 @@ describe('Canvas', () => {
const spot = canvas.addSpot({ id: 'spot1', type: Select }); const spot = canvas.addSpot({ id: 'spot1', type: Select });
canvas.addSpot({ id: 'spot1', type: Target }); canvas.addSpot({ id: 'spot1', type: Target });
expect(eventUpdate).toBeCalledTimes(1); expect(eventUpdate).toHaveBeenCalledTimes(1);
expect(eventUpdate).toBeCalledWith({ spot }); expect(eventUpdate).toHaveBeenCalledWith({ spot });
setTimeout(() => { setTimeout(() => {
expect(eventAll).toBeCalledTimes(1); expect(eventAll).toHaveBeenCalledTimes(1);
done(); done();
}); });
}); });
@ -170,10 +170,10 @@ describe('Canvas', () => {
em.on(canvas.events.spot, eventAll); em.on(canvas.events.spot, eventAll);
const spot = canvas.addSpot({ type: Select }); const spot = canvas.addSpot({ type: Select });
canvas.removeSpots(); canvas.removeSpots();
expect(eventRemove).toBeCalledTimes(1); expect(eventRemove).toHaveBeenCalledTimes(1);
expect(eventRemove).toBeCalledWith({ spot }); expect(eventRemove).toHaveBeenCalledWith({ spot });
setTimeout(() => { setTimeout(() => {
expect(eventAll).toBeCalledTimes(1); expect(eventAll).toHaveBeenCalledTimes(1);
done(); done();
}); });
}); });

2
packages/core/test/specs/css_composer/view/CssRulesView.ts

@ -121,7 +121,7 @@ describe('CssRulesView', () => {
test('Add new rule', () => { test('Add new rule', () => {
const spy = jest.spyOn(obj, 'addToCollection'); const spy = jest.spyOn(obj, 'addToCollection');
obj.collection.add({}); obj.collection.add({});
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Add correctly rules with different media queries', () => { test('Add correctly rules with different media queries', () => {

2
packages/core/test/specs/data_sources/__snapshots__/jsonplaceholder.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`JsonPlaceholder Usage should render a list of comments from jsonplaceholder api 1`] = ` exports[`JsonPlaceholder Usage should render a list of comments from jsonplaceholder api 1`] = `
"<body> "<body>

2
packages/core/test/specs/data_sources/__snapshots__/serialization.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`DataSource Serialization .getProjectData ComponentDataVariable 1`] = ` exports[`DataSource Serialization .getProjectData ComponentDataVariable 1`] = `
{ {

2
packages/core/test/specs/data_sources/__snapshots__/storage.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`DataSource Storage .getProjectData ComponentDataVariable 1`] = ` exports[`DataSource Storage .getProjectData ComponentDataVariable 1`] = `
{ {

2
packages/core/test/specs/data_sources/model/data_collection/__snapshots__/ComponentDataCollection.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`Collection component Serialization Saving: Collection with grandchildren 1`] = ` exports[`Collection component Serialization Saving: Collection with grandchildren 1`] = `
{ {

2
packages/core/test/specs/data_sources/model/data_collection/__snapshots__/ComponentDataCollectionWithDataVariable.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`Collection variable components Serialization Saving: Collection with collection variable component ( no grandchildren ) 1`] = ` exports[`Collection variable components Serialization Saving: Collection with collection variable component ( no grandchildren ) 1`] = `
{ {

2
packages/core/test/specs/data_sources/model/data_collection/__snapshots__/nestedComponentDataCollections.ts.snap

@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`Collection component Nested collections are correctly serialized 1`] = ` exports[`Collection component Nested collections are correctly serialized 1`] = `
{ {

4
packages/core/test/specs/data_sources/transformers.ts

@ -92,8 +92,8 @@ describe('DataSource Transformers', () => {
const ds = dsm.get('test-data-source'); const ds = dsm.get('test-data-source');
const dr = ds.addRecord({ id: 'id1', content: 'i love grapes' }); const dr = ds.addRecord({ id: 'id1', content: 'i love grapes' });
expect(() => dr.set('content', 123)).toThrowError('Value must be a string'); expect(() => dr.set('content', 123)).toThrow('Value must be a string');
expect(() => dr.set({ content: 123 })).toThrowError('Value must be a string'); expect(() => dr.set({ content: 123 })).toThrow('Value must be a string');
dr.set({ content: 'I LOVE GRAPES' }); dr.set({ content: 'I LOVE GRAPES' });

20
packages/core/test/specs/device_manager/index.js

@ -45,8 +45,8 @@ describe('DeviceManager', () => {
em.on(obj.events.add, eventFn); em.on(obj.events.add, eventFn);
em.on(obj.events.all, eventFnAll); em.on(obj.events.all, eventFnAll);
obj.add(testNameDevice, testWidthDevice); obj.add(testNameDevice, testWidthDevice);
expect(eventFn).toBeCalledTimes(1); expect(eventFn).toHaveBeenCalledTimes(1);
expect(eventFnAll).toBeCalled(); expect(eventFnAll).toHaveBeenCalled();
}); });
test('Added device has correct data', () => { test('Added device has correct data', () => {
@ -117,8 +117,8 @@ describe('DeviceManager', () => {
expect(all.length).toEqual(0); expect(all.length).toEqual(0);
expect(model).toBe(removed); expect(model).toBe(removed);
// Check for events // Check for events
expect(eventFn).toBeCalledTimes(1); expect(eventFn).toHaveBeenCalledTimes(1);
expect(eventFnAll).toBeCalled(); expect(eventFnAll).toHaveBeenCalled();
}); });
test('Update device', () => { test('Update device', () => {
@ -128,8 +128,8 @@ describe('DeviceManager', () => {
const up = { name: 'Test' }; const up = { name: 'Test' };
const opts = { myopts: 1 }; const opts = { myopts: 1 };
model.set(up, opts); model.set(up, opts);
expect(event).toBeCalledTimes(1); expect(event).toHaveBeenCalledTimes(1);
expect(event).toBeCalledWith(model, up, opts); expect(event).toHaveBeenCalledWith(model, up, opts);
}); });
test('Select device', () => { test('Select device', () => {
@ -144,19 +144,19 @@ describe('DeviceManager', () => {
obj.select(model); obj.select(model);
expect(em.get('device')).toBe('dev-1'); expect(em.get('device')).toBe('dev-1');
expect(obj.getSelected()).toBe(model); expect(obj.getSelected()).toBe(model);
expect(event).toBeCalledTimes(1); expect(event).toHaveBeenCalledTimes(1);
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
// Select from the manager with id // Select from the manager with id
obj.select('dev-2'); obj.select('dev-2');
expect(em.get('device')).toBe('dev-2'); expect(em.get('device')).toBe('dev-2');
expect(obj.getSelected()).toBe(model2); expect(obj.getSelected()).toBe(model2);
expect(event).toBeCalledTimes(2); expect(event).toHaveBeenCalledTimes(2);
// Select from the editor // Select from the editor
em.set('device', 'dev-1'); em.set('device', 'dev-1');
expect(obj.getSelected()).toBe(model); expect(obj.getSelected()).toBe(model);
expect(event).toBeCalledTimes(3); expect(event).toHaveBeenCalledTimes(3);
}); });
test('Render devices', () => { test('Render devices', () => {

2
packages/core/test/specs/dom_components/model/Component.ts

@ -545,7 +545,7 @@ describe('Component', () => {
}, },
}); });
expect(() => new ExtendedComponent({}, compOpts)).not.toThrowError(); expect(() => new ExtendedComponent({}, compOpts)).not.toThrow();
}); });
}); });

2
packages/core/test/specs/dom_components/view/ComponentsView.ts

@ -38,7 +38,7 @@ describe('ComponentsView', () => {
test('Add new component', () => { test('Add new component', () => {
const addSpy = jest.spyOn(view, 'addToCollection'); const addSpy = jest.spyOn(view, 'addToCollection');
view.collection.add({}); view.collection.add({});
expect(addSpy).toBeCalledTimes(1); expect(addSpy).toHaveBeenCalledTimes(1);
}); });
test('Render new component', () => { test('Render new component', () => {

6
packages/core/test/specs/i18n/index.ts

@ -199,9 +199,9 @@ describe('I18n', () => {
em.on('i18n:locale', handlerLocale); em.on('i18n:locale', handlerLocale);
obj.addMessages({ en: { msg1: 'Msg 1', msg2: 'Msg 2' } }); obj.addMessages({ en: { msg1: 'Msg 1', msg2: 'Msg 2' } });
obj.setLocale('it'); obj.setLocale('it');
expect(handlerAdd).toBeCalledTimes(1); expect(handlerAdd).toHaveBeenCalledTimes(1);
expect(handlerUpdate).toBeCalledTimes(1); expect(handlerUpdate).toHaveBeenCalledTimes(1);
expect(handlerLocale).toBeCalledTimes(1); expect(handlerLocale).toHaveBeenCalledTimes(1);
}); });
}); });
}); });

6
packages/core/test/specs/keymaps/index.js

@ -74,7 +74,7 @@ describe('Keymaps', () => {
}); });
document.dispatchEvent(keyboardEvent); document.dispatchEvent(keyboardEvent);
expect(handler.callRun).toBeCalled(); expect(handler.callRun).toHaveBeenCalled();
}); });
}); });
@ -96,7 +96,7 @@ describe('Keymaps', () => {
}); });
document.dispatchEvent(keyboardEvent); document.dispatchEvent(keyboardEvent);
expect(handler.callRun).toBeCalledTimes(0); expect(handler.callRun).toHaveBeenCalledTimes(0);
}); });
it('Should run the handler if checked as force', () => { it('Should run the handler if checked as force', () => {
@ -112,7 +112,7 @@ describe('Keymaps', () => {
}); });
document.dispatchEvent(keyboardEvent); document.dispatchEvent(keyboardEvent);
expect(handler.callRun).toBeCalled(); expect(handler.callRun).toHaveBeenCalled();
}); });
}); });
}); });

8
packages/core/test/specs/pages/index.ts

@ -192,7 +192,7 @@ describe('Managing pages', () => {
em.on(pm.events.add, eventAdd); em.on(pm.events.add, eventAdd);
pm.add({}); pm.add({});
expect(pm.getAll().length).toBe(2); expect(pm.getAll().length).toBe(2);
expect(eventAdd).toBeCalledTimes(1); expect(eventAdd).toHaveBeenCalledTimes(1);
}); });
test('Abort add page', () => { test('Abort add page', () => {
@ -218,7 +218,7 @@ describe('Managing pages', () => {
const page = pm.add({})!; const page = pm.add({})!;
pm.remove(`${page.id}`); pm.remove(`${page.id}`);
expect(pm.getAll().length).toBe(1); expect(pm.getAll().length).toBe(1);
expect(eventRm).toBeCalledTimes(1); expect(eventRm).toHaveBeenCalledTimes(1);
}); });
test('Abort remove page', () => { test('Abort remove page', () => {
@ -247,8 +247,8 @@ describe('Managing pages', () => {
const up = { name: 'Test' }; const up = { name: 'Test' };
const opts = { myopts: 1 }; const opts = { myopts: 1 };
page.set(up, opts); page.set(up, opts);
expect(event).toBeCalledTimes(1); expect(event).toHaveBeenCalledTimes(1);
expect(event).toBeCalledWith(page, up, opts); expect(event).toHaveBeenCalledWith(page, up, opts);
}); });
test('Prevent duplicate ids in components and styles', () => { test('Prevent duplicate ids in components and styles', () => {

4
packages/core/test/specs/panels/index.ts

@ -82,7 +82,7 @@ describe('Panels', () => {
const btn = obj.addButton('test', { id: 'btn', active: true }); const btn = obj.addButton('test', { id: 'btn', active: true });
btn?.on('updateActive', fn); btn?.on('updateActive', fn);
obj.active(); obj.active();
expect(fn).toBeCalledTimes(1); expect(fn).toHaveBeenCalledTimes(1);
}); });
test('Disable correctly buttons flagged as disabled', () => { test('Disable correctly buttons flagged as disabled', () => {
@ -91,7 +91,7 @@ describe('Panels', () => {
const btn = obj.addButton('test', { id: 'btn', disable: true }); const btn = obj.addButton('test', { id: 'btn', disable: true });
btn?.on('change:disable', fn); btn?.on('change:disable', fn);
obj.disableButtons(); obj.disableButtons();
expect(fn).toBeCalledTimes(1); expect(fn).toHaveBeenCalledTimes(1);
}); });
test("Can't remove button to non existent panel", () => { test("Can't remove button to non existent panel", () => {

4
packages/core/test/specs/panels/view/ButtonView.ts

@ -72,14 +72,14 @@ describe('ButtonView', () => {
const spy = jest.spyOn(view, 'toggleActive' as any); const spy = jest.spyOn(view, 'toggleActive' as any);
model.set('disable', true, { silent: true }); model.set('disable', true, { silent: true });
view.clicked(); view.clicked();
expect(spy).toBeCalledTimes(0); expect(spy).toHaveBeenCalledTimes(0);
}); });
test('Enable the click action when button is enable', () => { test('Enable the click action when button is enable', () => {
const spy = jest.spyOn(view, 'toggleActive' as any); const spy = jest.spyOn(view, 'toggleActive' as any);
model.set('disable', false, { silent: true }); model.set('disable', false, { silent: true });
view.clicked(); view.clicked();
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Renders correctly', () => { test('Renders correctly', () => {

2
packages/core/test/specs/panels/view/ButtonsView.ts

@ -28,7 +28,7 @@ describe('ButtonsView', () => {
test('Add new button', () => { test('Add new button', () => {
const spy = jest.spyOn(view, 'addToCollection' as any); const spy = jest.spyOn(view, 'addToCollection' as any);
view.collection.add([{}]); view.collection.add([{}]);
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Render new button', () => { test('Render new button', () => {

2
packages/core/test/specs/panels/view/PanelsView.ts

@ -28,7 +28,7 @@ describe('PanelsView', () => {
test('Add new panel', () => { test('Add new panel', () => {
const spy = jest.spyOn(view, 'addToCollection' as any); const spy = jest.spyOn(view, 'addToCollection' as any);
view.collection.add([{}]); view.collection.add([{}]);
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Render new panel', () => { test('Render new panel', () => {

4
packages/core/test/specs/selector_manager/e2e/ClassManager.ts

@ -78,9 +78,9 @@ describe('ClassManager E2E tests', () => {
tagEl.addNewTag('test'); tagEl.addNewTag('test');
gjs.editor.on('component:update:classes', spy); gjs.editor.on('component:update:classes', spy);
tagEl.addNewTag('test'); tagEl.addNewTag('test');
expect(spy).toBeCalledTimes(0); expect(spy).toHaveBeenCalledTimes(0);
tagEl.addNewTag('test2'); tagEl.addNewTag('test2');
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Selectors are properly transformed to JSON', () => { test('Selectors are properly transformed to JSON', () => {

20
packages/core/test/specs/selector_manager/index.ts

@ -193,9 +193,9 @@ describe('SelectorManager', () => {
em.on(obj.events.add, eventAdd); em.on(obj.events.add, eventAdd);
em.on(obj.events.all, eventAll); em.on(obj.events.all, eventAll);
const added = obj.add(itemTest); const added = obj.add(itemTest);
expect(eventAdd).toBeCalledTimes(1); expect(eventAdd).toHaveBeenCalledTimes(1);
expect(eventAdd).toBeCalledWith(added, expect.anything()); expect(eventAdd).toHaveBeenCalledWith(added, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
test('Remove triggers proper events', () => { test('Remove triggers proper events', () => {
@ -209,10 +209,10 @@ describe('SelectorManager', () => {
em.on(obj.events.all, eventAll); em.on(obj.events.all, eventAll);
const removed = obj.remove(itemTest); const removed = obj.remove(itemTest);
expect(obj.getAll().length).toBe(0); expect(obj.getAll().length).toBe(0);
expect(eventBfRm).toBeCalledTimes(1); expect(eventBfRm).toHaveBeenCalledTimes(1);
expect(eventRm).toBeCalledTimes(1); expect(eventRm).toHaveBeenCalledTimes(1);
expect(eventRm).toBeCalledWith(removed, expect.anything()); expect(eventRm).toHaveBeenCalledWith(removed, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
test('Update triggers proper events', () => { test('Update triggers proper events', () => {
@ -224,9 +224,9 @@ describe('SelectorManager', () => {
em.on(obj.events.update, eventUp); em.on(obj.events.update, eventUp);
em.on(obj.events.all, eventAll); em.on(obj.events.all, eventAll);
added.set(newProps); added.set(newProps);
expect(eventUp).toBeCalledTimes(1); expect(eventUp).toHaveBeenCalledTimes(1);
expect(eventUp).toBeCalledWith(added, newProps, expect.anything()); expect(eventUp).toHaveBeenCalledWith(added, newProps, expect.anything());
expect(eventAll).toBeCalled(); expect(eventAll).toHaveBeenCalled();
}); });
}); });
}); });

2
packages/core/test/specs/selector_manager/view/ClassTagView.ts

@ -67,7 +67,7 @@ describe('ClassTagView', () => {
obj.$el.find('#checkbox').trigger('click'); obj.$el.find('#checkbox').trigger('click');
expect(obj.model.get('active')).toEqual(false); expect(obj.model.get('active')).toEqual(false);
// expect(spy.called).toEqual(true); // expect(spy.called).toEqual(true);
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Label input is disabled', () => { test('Label input is disabled', () => {

10
packages/core/test/specs/selector_manager/view/ClassTagsView.ts

@ -75,7 +75,7 @@ describe('ClassTagsView', () => {
test('Add new tag triggers correct method', () => { test('Add new tag triggers correct method', () => {
const spy = jest.spyOn(view, 'addToClasses'); const spy = jest.spyOn(view, 'addToClasses');
coll.add({ name: 'test' }); coll.add({ name: 'test' });
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Start new tag creation', () => { test('Start new tag creation', () => {
@ -126,7 +126,7 @@ describe('ClassTagsView', () => {
coll.add([{ name: 'test1' }, { name: 'test2' }]); coll.add([{ name: 'test1' }, { name: 'test2' }]);
const spy = jest.spyOn(view, 'addToClasses'); const spy = jest.spyOn(view, 'addToClasses');
coll.trigger('reset'); coll.trigger('reset');
expect(spy).toBeCalledTimes(2); expect(spy).toHaveBeenCalledTimes(2);
}); });
test("Don't accept empty tags", () => { test("Don't accept empty tags", () => {
@ -157,7 +157,7 @@ describe('ClassTagsView', () => {
test('States are visible in case of more tags inside', () => { test('States are visible in case of more tags inside', () => {
coll.add({ label: 'test' }); coll.add({ label: 'test' });
view.updateStateVis(); view.updateStateVis();
expect(testContext.$statesC.css('display')).toEqual(''); expect(testContext.$statesC.css('display')).not.toEqual('none');
}); });
test('Update state visibility on new tag', (done) => { test('Update state visibility on new tag', (done) => {
@ -165,7 +165,7 @@ describe('ClassTagsView', () => {
em.setSelected(compTest); em.setSelected(compTest);
view.addNewTag('test'); view.addNewTag('test');
setTimeout(() => { setTimeout(() => {
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
done(); done();
}); });
}); });
@ -176,7 +176,7 @@ describe('ClassTagsView', () => {
const spy = jest.spyOn(view, 'updateStateVis'); const spy = jest.spyOn(view, 'updateStateVis');
coll.remove(coll.at(0)); coll.remove(coll.at(0));
setTimeout(() => { setTimeout(() => {
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
done(); done();
}); });
}); });

2
packages/core/test/specs/storage_manager/index.ts

@ -60,7 +60,7 @@ describe('Storage Manager', () => {
test('Store is executed', async () => { test('Store is executed', async () => {
const spy = jest.spyOn(obj, '__exec'); const spy = jest.spyOn(obj, '__exec');
await obj.store({ item: 'test' }); await obj.store({ item: 'test' });
expect(spy).toBeCalledTimes(1); expect(spy).toHaveBeenCalledTimes(1);
}); });
test('Load default storages ', () => { test('Load default storages ', () => {

6
packages/core/test/specs/storage_manager/model/Models.js

@ -58,7 +58,7 @@ describe('RemoteStorage', () => {
const { calls } = obj.request.mock; const { calls } = obj.request.mock;
expect(calls.length).toBe(1); expect(calls.length).toBe(1);
expect(calls[0][0]).toBe(defaultOpts.urlStore); expect(calls[0][0]).toBe(defaultOpts.urlStore);
// expect(obj.request).toBeCalledWith(opts.urlStore, defaultOpts, opts); // expect(obj.request).toHaveBeenCalledWith(opts.urlStore, defaultOpts, opts);
const { body, ...args } = calls[0][1]; const { body, ...args } = calls[0][1];
expect(args).toEqual({ expect(args).toEqual({
method: 'POST', method: 'POST',
@ -70,7 +70,7 @@ describe('RemoteStorage', () => {
test('Load data', async () => { test('Load data', async () => {
await obj.load(defaultOpts); await obj.load(defaultOpts);
const { calls } = obj.request.mock; const { calls } = obj.request.mock;
expect(obj.request).toBeCalledTimes(1); expect(obj.request).toHaveBeenCalledTimes(1);
expect(calls[0][0]).toBe(defaultOpts.urlLoad); expect(calls[0][0]).toBe(defaultOpts.urlLoad);
expect(calls[0][1]).toEqual({ expect(calls[0][1]).toEqual({
method: 'GET', method: 'GET',
@ -87,7 +87,7 @@ describe('RemoteStorage', () => {
fetchOptions: () => customOpts, fetchOptions: () => customOpts,
}); });
expect(obj.request).toBeCalledTimes(1); expect(obj.request).toHaveBeenCalledTimes(1);
expect(obj.request.mock.calls[0][1]).toEqual({ expect(obj.request.mock.calls[0][1]).toEqual({
method: 'GET', method: 'GET',
body: undefined, body: undefined,

2435
pnpm-lock.yaml

File diff suppressed because it is too large
Loading…
Cancel
Save