UNPKG

scratch-gui

Version:

GraphicaL User Interface for creating and running Scratch 3.0 projects

85 lines (72 loc) 2.49 kB
/* globals Promise */ import path from 'path'; import SeleniumHelper from '../helpers/selenium-helper'; const { clickButton, clickText, clickXpath, findByXpath, getDriver, getLogs, loadUri } = new SeleniumHelper(); let driver; describe('player example', () => { const uri = path.resolve(__dirname, '../../build/player.html'); beforeAll(() => { driver = getDriver(); }); afterAll(async () => { await driver.quit(); }); test('Load a project by ID', async () => { const projectId = '96708228'; await loadUri(`${uri}#${projectId}`); await new Promise(resolve => setTimeout(resolve, 2000)); await clickXpath('//img[@title="Go"]'); await new Promise(resolve => setTimeout(resolve, 2000)); await clickXpath('//img[@title="Stop"]'); const logs = await getLogs(); await expect(logs).toEqual([]); }); }); describe('blocks example', () => { const uri = path.resolve(__dirname, '../../build/blocks-only.html'); beforeAll(() => { driver = getDriver(); }); afterAll(async () => { await driver.quit(); }); test('Load a project by ID', async () => { const projectId = '96708228'; await loadUri(`${uri}#${projectId}`); await new Promise(resolve => setTimeout(resolve, 2000)); await clickXpath('//img[@title="Go"]'); await new Promise(resolve => setTimeout(resolve, 2000)); await clickXpath('//img[@title="Stop"]'); const logs = await getLogs(); await expect(logs).toEqual([]); }); test('Change categories', async () => { await loadUri(`${uri}`); await clickText('Looks'); await clickText('Sound'); await clickText('Events'); await clickText('Control'); await clickText('Sensing'); await clickText('Operators'); await clickText('Variables'); await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation await clickText('Make a Variable'); let el = await findByXpath("//input[@placeholder='']"); await el.sendKeys('score'); await clickButton('OK'); await clickText('Make a Variable'); el = await findByXpath("//input[@placeholder='']"); await el.sendKeys('second variable'); await clickButton('OK'); const logs = await getLogs(); await expect(logs).toEqual([]); }); });