Skip to content

Commit

Permalink
chore: add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
BeksOmega committed Oct 30, 2023
1 parent 08d5d6e commit ae3d7be
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 16 deletions.
4 changes: 2 additions & 2 deletions core/layer_manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export class LayerManager {
* @internal
*/
moveOffDragLayer(elem: IRenderedElement, layerNum: number) {
this.appendRenderedElement(elem, layerNum);
this.append(elem, layerNum);
}

/**
Expand All @@ -86,7 +86,7 @@ export class LayerManager {
*
* @internal
*/
appendRenderedElement(elem: IRenderedElement, layerNum: number) {
append(elem: IRenderedElement, layerNum: number) {
if (!this.layers.has(layerNum)) {
this.createLayer(layerNum);
}
Expand Down
1 change: 1 addition & 0 deletions tests/mocha/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
import './jso_serialization_test.js';
import './json_test.js';
import './keydown_test.js';
import './layering_test.js';
import './blocks/lists_test.js';
import './blocks/logic_ternary_test.js';
import './metrics_test.js';
Expand Down
94 changes: 94 additions & 0 deletions tests/mocha/layering_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/**
* @license
* Copyright 2023 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {
sharedTestSetup,
sharedTestTeardown,
} from './test_helpers/setup_teardown.js';

suite('Layering', function () {
setup(function () {
sharedTestSetup.call(this);
this.workspace = Blockly.inject('blocklyDiv', {});
this.layerManager = this.workspace.getLayerManager();
});

teardown(function () {
sharedTestTeardown.call(this);
});

function createRenderedElement() {
const g = Blockly.utils.dom.createSvgElement('g', {});
return {
getSvgRoot: () => g,
};
}

suite('appending layers', function () {
test('layer is not appended if it already exists', function () {
const elem1 = createRenderedElement();
const elem2 = createRenderedElement();
this.layerManager.append(elem1, 999);

const layerCount = this.layerManager.layers.size;
this.layerManager.append(elem2, 999);

chai.assert.equal(
this.layerManager.layers.size,
layerCount,
'Expected the element to be appended to the existing layer',
);
});

test('more positive layers are appended after less positive layers', function () {
// Checks that if the element comes after all elements, its still gets
// appended.

const elem1 = createRenderedElement();
const elem2 = createRenderedElement();

this.layerManager.append(elem1, 1000);
this.layerManager.append(elem2, 1010);

const layer1000 = this.layerManager.layers.get(1000);
const layer1010 = this.layerManager.layers.get(1010);
chai.assert.equal(
layer1000.nextSibling,
layer1010,
'Expected layer 1000 to be direclty before layer 1010',
);
});

test('less positive layers are appended before more positive layers', function () {
const elem1 = createRenderedElement();
const elem2 = createRenderedElement();

this.layerManager.append(elem1, 1010);
this.layerManager.append(elem2, 1000);

const layer1010 = this.layerManager.layers.get(1010);
const layer1000 = this.layerManager.layers.get(1000);
chai.assert.equal(
layer1000.nextSibling,
layer1010,
'Expected layer 1000 to be direclty before layer 1010',
);
});
});

suite('dragging', function () {
test('moving an element to the drag layer adds it to the drag group', function () {
const elem = createRenderedElement();

this.layerManager.moveToDragLayer(elem);

chai.assert.equal(
this.layerManager.dragLayer.firstChild,
elem.getSvgRoot(),
'Expected the element to be the first element in the drag layer.',
);
});
});
});
2 changes: 1 addition & 1 deletion tests/mocha/theme_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ suite('Theme', function () {
try {
const blockStyles = createBlockStyles();
const theme = new Blockly.Theme('themeName', blockStyles);
workspace = new Blockly.WorkspaceSvg(new Blockly.Options({}));
workspace = Blockly.inject('blocklyDiv', {});
const blockA = workspace.newBlock('stack_block');

blockA.setStyle = function () {
Expand Down
13 changes: 0 additions & 13 deletions tests/mocha/workspace_comment_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,19 +163,6 @@ suite('Workspace comment', function () {
// Nothing should go wrong the second time dispose is called.
comment.dispose();
});

test('WorkspaceCommentSvg disposed', function () {
const comment = new Blockly.WorkspaceCommentSvg(
this.workspace,
'comment text',
0,
0,
'comment id',
);
comment.dispose();
// Nothing should go wrong the second time dispose is called.
comment.dispose();
});
});

suite('Width and height', function () {
Expand Down

0 comments on commit ae3d7be

Please sign in to comment.