mirror of
https://github.com/google/blockly.git
synced 2026-01-08 09:30:06 +01:00
feat(test): add helper functions for getting selected block and block… (#7254)
* feat(test): add helper functions for getting selected block and block by ID * chore: format test files * chore: fix lint
This commit is contained in:
@@ -9,7 +9,11 @@
|
||||
*/
|
||||
|
||||
const chai = require('chai');
|
||||
const {testSetup, testFileLocations} = require('./test_setup');
|
||||
const {
|
||||
testSetup,
|
||||
testFileLocations,
|
||||
getSelectedBlockElement,
|
||||
} = require('./test_setup');
|
||||
|
||||
let browser;
|
||||
suite('Testing Connecting Blocks', function (done) {
|
||||
@@ -48,9 +52,7 @@ suite('Testing Connecting Blocks', function (done) {
|
||||
);
|
||||
await mathNumeric.dragAndDrop({x: 50, y: 20});
|
||||
// Connect numeric to first procedure
|
||||
const numericWorkspace = await browser.$(
|
||||
'#content_blocks > div > svg.blocklySvg > g > g.blocklyBlockCanvas > g.blocklyDraggable.blocklySelected'
|
||||
);
|
||||
const numericWorkspace = await getSelectedBlockElement(browser);
|
||||
const doSomething = await browser.$(
|
||||
'#content_blocks > div > svg.blocklySvg > g > g.blocklyBlockCanvas > g:nth-child(2)'
|
||||
);
|
||||
@@ -70,9 +72,7 @@ suite('Testing Connecting Blocks', function (done) {
|
||||
);
|
||||
await doSomethingFlyout.dragAndDrop(doSomething2);
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000)); // 2 sec
|
||||
const doSomethingFlyoutWorkspace = await browser.$(
|
||||
'#content_blocks > div > svg.blocklySvg > g > g.blocklyBlockCanvas > g.blocklyDraggable.blocklySelected'
|
||||
);
|
||||
const doSomethingFlyoutWorkspace = await getSelectedBlockElement(browser);
|
||||
await doSomethingFlyoutWorkspace.dragAndDrop({x: 130, y: 20});
|
||||
|
||||
// Drag out print from flyout and connect it with doSomething 2
|
||||
@@ -92,9 +92,8 @@ suite('Testing Connecting Blocks', function (done) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000)); // 2 sec
|
||||
await doSomething2Flyout.dragAndDrop({x: 130, y: 20});
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000)); // 2 sec
|
||||
const doSomething2FlyoutWorkspace = await browser.$(
|
||||
'#content_blocks > div > svg.blocklySvg > g > g.blocklyBlockCanvas > g.blocklyDraggable.blocklySelected'
|
||||
);
|
||||
const doSomething2FlyoutWorkspace = await getSelectedBlockElement(browser);
|
||||
|
||||
const printWorkSpace = await browser.$(
|
||||
'#content_blocks > div > svg.blocklySvg > g > g.blocklyBlockCanvas > g:nth-child(4)'
|
||||
);
|
||||
|
||||
@@ -73,4 +73,32 @@ const testFileLocations = {
|
||||
playground: 2,
|
||||
};
|
||||
|
||||
module.exports = {testSetup, testFileLocations};
|
||||
/**
|
||||
* @param {Browser} browser The active WebdriverIO Browser object.
|
||||
* @return {WebElement} The selected block's root SVG element, as an interactable
|
||||
* browser element.
|
||||
*/
|
||||
async function getSelectedBlockElement(browser) {
|
||||
const result = await browser.execute(() => {
|
||||
// Note: selected is an ICopyable and I am assuming that it is a BlockSvg.
|
||||
return Blockly.common.getSelected()?.id;
|
||||
});
|
||||
return await browser.$(`[data-id="${result}"]`);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Browser} browser The active WebdriverIO Browser object.
|
||||
* @param {string} id The ID of the Blockly block to search for.
|
||||
* @return {WebElement} The root SVG element of the block with the given ID, as an
|
||||
* interactable browser element.
|
||||
*/
|
||||
async function getBlockElementById(browser, id) {
|
||||
return await browser.$(`[data-id="${id}"]`);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
testSetup,
|
||||
testFileLocations,
|
||||
getSelectedBlockElement,
|
||||
getBlockElementById,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user