mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2025-03-23 19:30:34 -04:00
Add tests that attempt to load shared and unshared projects
This commit is contained in:
parent
ed9d958207
commit
9cc805f42c
1 changed files with 87 additions and 5 deletions
|
@ -1,4 +1,5 @@
|
|||
// These tests do not sign in with a user
|
||||
// Adding tests that sign in with user #6
|
||||
|
||||
const SeleniumHelper = require('./selenium-helpers.js');
|
||||
|
||||
|
@ -6,12 +7,27 @@ const {
|
|||
buildDriver,
|
||||
clickXpath,
|
||||
findByXpath,
|
||||
signIn,
|
||||
waitUntilVisible
|
||||
} = new SeleniumHelper();
|
||||
|
||||
let rootUrl = process.env.ROOT_URL || 'https://scratch.ly';
|
||||
let projectId = process.env.TEST_PROJECT_ID || 1300006196;
|
||||
let projectUrl = rootUrl + '/projects/' + projectId;
|
||||
|
||||
// project IDs and URLs
|
||||
let unownedSharedId = process.env.UNOWNED_SHARED_PROJECT_ID || 1300006196;
|
||||
let unownedSharedUrl = rootUrl + '/projects/' + unownedSharedId;
|
||||
|
||||
let ownedSharedId = process.env.OWNED_SHARED_PROJECT_ID || 1300009464;
|
||||
let ownedSharedUrl = rootUrl + '/projects/' + ownedSharedId;
|
||||
|
||||
let ownedUnsharedID = process.env.OWNED_UNSHARED_PROJECT_ID || 1300009465;
|
||||
let ownedUnsharedUrl = rootUrl + '/projects/' + ownedUnsharedID;
|
||||
|
||||
let unownedUnsharedID = process.env.UNOWNED_UNSHARED_PROJECT_ID || 1300006306;
|
||||
let unownedUnsharedUrl = rootUrl + '/projects/' + unownedUnsharedID;
|
||||
|
||||
let username = process.env.SMOKE_USERNAME + '6';
|
||||
let password = process.env.SMOKE_PASSWORD;
|
||||
|
||||
jest.setTimeout(60000);
|
||||
|
||||
|
@ -25,7 +41,7 @@ describe('www-integration project-page signed out', () => {
|
|||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await driver.get(projectUrl);
|
||||
await driver.get(unownedSharedUrl);
|
||||
let gfOverlay = await findByXpath('//div[@class="stage-wrapper_stage-wrapper_2bejr box_box_2jjDp"]');
|
||||
await waitUntilVisible(gfOverlay, driver);
|
||||
});
|
||||
|
@ -46,7 +62,7 @@ describe('www-integration project-page signed out', () => {
|
|||
await clickXpath('//button[@class="button action-button copy-link-button"]');
|
||||
let projectLink = await findByXpath('//input[@name="link"]');
|
||||
let linkValue = await projectLink.getAttribute('value');
|
||||
await expect(linkValue).toEqual(projectUrl);
|
||||
await expect(linkValue).toEqual(unownedSharedUrl);
|
||||
});
|
||||
|
||||
test('Click Username to go to profile page', async ()=> {
|
||||
|
@ -67,6 +83,72 @@ describe('www-integration project-page signed out', () => {
|
|||
await clickXpath('//div[@class="list-header-link"]');
|
||||
let originalLink = await findByXpath('//h2/a');
|
||||
let link = await originalLink.getAttribute('href');
|
||||
await expect(link).toEqual(rootUrl + '/projects/' + projectId + '/');
|
||||
await expect(link).toEqual(rootUrl + '/projects/' + unownedSharedId + '/');
|
||||
});
|
||||
|
||||
// Load an unshared project while signed out, get error
|
||||
test('Load an ushared project you do not own (error)', async () => {
|
||||
await driver.get(unownedUnsharedUrl);
|
||||
let unavailableImage = await findByXpath('//img[@class="not-available-image"]');
|
||||
await waitUntilVisible(unavailableImage, driver);
|
||||
let unavailableVisible = await unavailableImage.isDisplayed();
|
||||
await expect(unavailableVisible).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
// Logged in tests
|
||||
|
||||
describe('www-integration project-page signed in', () => {
|
||||
beforeAll(async () => {
|
||||
// expect(projectUrl).toBe(defined);
|
||||
driver = await buildDriver('www-integration project-page 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());
|
||||
|
||||
// LOGGED in TESTS
|
||||
|
||||
// Load a shared project you own
|
||||
test('Load a shared project you own', async () => {
|
||||
await driver.get(ownedSharedUrl);
|
||||
let gfOverlay = await findByXpath('//div[@class="stage-wrapper_stage-wrapper_2bejr box_box_2jjDp"]');
|
||||
await waitUntilVisible(gfOverlay, driver);
|
||||
let gfVisible = await gfOverlay.isDisplayed();
|
||||
await expect(gfVisible).toBe(true);
|
||||
});
|
||||
|
||||
// Load a shared project you don't own
|
||||
test('Load a shared project you do not own', async () => {
|
||||
await driver.get(unownedSharedUrl);
|
||||
let gfOverlay = await findByXpath('//div[@class="stage-wrapper_stage-wrapper_2bejr box_box_2jjDp"]');
|
||||
await waitUntilVisible(gfOverlay, driver);
|
||||
let gfVisible = await gfOverlay.isDisplayed();
|
||||
await expect(gfVisible).toBe(true);
|
||||
});
|
||||
|
||||
// Load an unshared project you own
|
||||
test('Load a shared project you own', async () => {
|
||||
await driver.get(ownedUnsharedUrl);
|
||||
let gfOverlay = await findByXpath('//div[@class="stage-wrapper_stage-wrapper_2bejr box_box_2jjDp"]');
|
||||
await waitUntilVisible(gfOverlay, driver);
|
||||
let gfVisible = await gfOverlay.isDisplayed();
|
||||
await expect(gfVisible).toBe(true);
|
||||
});
|
||||
|
||||
// Load an unshared project you don't own, get error
|
||||
test('Load an ushared project you do not own (error)', async () => {
|
||||
await driver.get(unownedUnsharedUrl);
|
||||
let unavailableImage = await findByXpath('//img[@class="not-available-image"]');
|
||||
await waitUntilVisible(unavailableImage, driver);
|
||||
let unavailableVisible = await unavailableImage.isDisplayed();
|
||||
await expect(unavailableVisible).toBe(true);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue