From e17b9d901728c1c4309c8ff50059ea6bf72404ea Mon Sep 17 00:00:00 2001 From: BryceLTaylor Date: Thu, 26 May 2022 11:44:00 -0400 Subject: [PATCH] Add test for loading, copying, and remixing projects --- test/fixtures/project1.sb3 | Bin 0 -> 41936 bytes test/integration/project-page.test.js | 69 ++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 test/fixtures/project1.sb3 diff --git a/test/fixtures/project1.sb3 b/test/fixtures/project1.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..747ecd37a3a8d4a11b6abd6d6b388fe395a633d8 GIT binary patch literal 41936 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 literal 0 HcmV?d00001 diff --git a/test/integration/project-page.test.js b/test/integration/project-page.test.js index e7b97fee9..2c9daeb8b 100644 --- a/test/integration/project-page.test.js +++ b/test/integration/project-page.test.js @@ -3,10 +3,13 @@ // some tests use projects owned by user #2 const SeleniumHelper = require('./selenium-helpers.js'); +import path from 'path'; const { buildDriver, + clickText, clickXpath, + findText, findByXpath, signIn, waitUntilVisible @@ -177,3 +180,69 @@ describe('www-integration project-page signed in', () => { await expect(gfVisible).toBe(true); }); }); + +describe('www-integration project-creation signed in', () => { + beforeAll(async () => { + // expect(projectUrl).toBe(defined); + driver = await buildDriver('www-integration project-creation signed in'); + await driver.get(rootUrl); + await driver.sleep(1000); + await signIn(username, password); + await findByXpath('//span[contains(@class, "profile-name")]'); + }); + + beforeEach(async () => { + await driver.get(rootUrl); + }); + + afterAll(async () => await driver.quit()); + + test('load project from file', async () => { + await clickXpath('//li[@class="link create"]'); + let gf = await findByXpath('//img[@class="green-flag_green-flag_1kiAo"]'); + await gf.isDisplayed(); + await clickText('File'); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/project1.sb3')); + await driver.sleep(200); + let alert = await driver.switchTo().alert(); + await alert.accept(); + let spriteTile = await findText('project1-sprite'); + let spriteTileVisible = await spriteTile.isDisplayed(); + await expect(spriteTileVisible).toBe(true); + await driver.sleep(1000); + let infoArea = await findByXpath('//div[@class="sprite-info_sprite-info_3EyZh box_box_2jjDp"]'); + let areaVisible = await infoArea.isDisplayed(); + await expect(areaVisible).toBe(true); + }); + + test('make a copy of a project', async () => { + await driver.get(ownedUnsharedUrl + '/editor'); + let gf = await findByXpath('//img[@class="green-flag_green-flag_1kiAo"]'); + await gf.isDisplayed(); + await clickText('File'); + await clickText('Save as a copy'); + let successAlert = await findText('Project saved as a copy.'); + let alertVisible = await successAlert.isDisplayed(); + await expect(alertVisible).toBe(true); + await driver.sleep(1000); + let infoArea = await findByXpath('//div[@class="sprite-info_sprite-info_3EyZh box_box_2jjDp"]'); + let areaVisible = await infoArea.isDisplayed(); + await expect(areaVisible).toBe(true); + }); + + test('remix a project', async () => { + await driver.get(unownedSharedUrl); + let gfOverlay = await findByXpath('//div[@class="stage-wrapper_stage-wrapper_2bejr box_box_2jjDp"]'); + await waitUntilVisible(gfOverlay, driver); + await clickXpath('//button[@class="button remix-button"]'); + let successAlert = await findText('Project saved as a remix.'); + let alertVisible = await successAlert.isDisplayed(); + await expect(alertVisible).toBe(true); + await driver.sleep(1000); + let infoArea = await findByXpath('//div[@class="sprite-info_sprite-info_3EyZh box_box_2jjDp"]'); + let areaVisible = await infoArea.isDisplayed(); + await expect(areaVisible).toBe(true); + }); +});