From f244da77054cf7da587b16dc6ca59de141a588fb Mon Sep 17 00:00:00 2001 From: Ben Wheeler <wheeler.benjamin@gmail.com> Date: Thu, 2 Jan 2020 14:29:04 -0500 Subject: [PATCH] added project-state integration test for new title --- test/helpers/selenium-helper.js | 2 ++ test/integration/project-state.test.js | 45 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 test/integration/project-state.test.js diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js index 84e6c355a..ee77b4c23 100644 --- a/test/helpers/selenium-helper.js +++ b/test/helpers/selenium-helper.js @@ -28,6 +28,8 @@ class SeleniumHelper { 'loadUri', 'rightClickText' ]); + + this.Key = webdriver.Key; // map Key constants, for sending special keys } elementIsVisible (element, timeoutMessage = 'elementIsVisible timed out') { diff --git a/test/integration/project-state.test.js b/test/integration/project-state.test.js new file mode 100644 index 000000000..e155893b3 --- /dev/null +++ b/test/integration/project-state.test.js @@ -0,0 +1,45 @@ +import path from 'path'; +import SeleniumHelper from '../helpers/selenium-helper'; + +const { + clickText, + clickXpath, + findByXpath, + getDriver, + Key, + loadUri +} = new SeleniumHelper(); + +const uri = path.resolve(__dirname, '../../build/index.html'); + +let driver; + +describe('Project state', () => { + beforeAll(() => { + driver = getDriver(); + }); + + afterAll(async () => { + await driver.quit(); + }); + + test('File->New resets project title', async () => { + const defaultProjectTitle = 'Scratch Project'; + await loadUri(uri); + const inputEl = await findByXpath(`//input[@value="${defaultProjectTitle}"]`); + for (let i = 0; i < defaultProjectTitle.length; i++) { + inputEl.sendKeys(Key.BACK_SPACE); + } + inputEl.sendKeys('Changed title of project'); + await clickText('Costumes'); // just to blur the input + // verify that project title has changed + await clickXpath('//input[@value="Changed title of project"]'); + await clickXpath( + '//div[contains(@class, "menu-bar_menu-bar-item") and ' + + 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' + ); + await clickXpath('//li[span[text()="New"]]'); + // project title should be default again + await clickXpath(`//input[@value="${defaultProjectTitle}"]`); + }); +}); -- GitLab