mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2025-02-17 08:31:23 -05:00
Merge pull request #6233 from BryceLTaylor/comment-test-updates
Add project and studio reply integration tests
This commit is contained in:
commit
e88bed5408
1 changed files with 57 additions and 3 deletions
|
@ -39,6 +39,9 @@ let projectComment = buildNumber + ' project';
|
||||||
let profileComment = buildNumber + ' profile';
|
let profileComment = buildNumber + ' profile';
|
||||||
let studioComment = buildNumber + ' studio';
|
let studioComment = buildNumber + ' studio';
|
||||||
|
|
||||||
|
let projectReply = projectComment + ' reply';
|
||||||
|
let studioReply = studioComment + ' reply';
|
||||||
|
|
||||||
if (remote) {
|
if (remote) {
|
||||||
jest.setTimeout(60000);
|
jest.setTimeout(60000);
|
||||||
} else {
|
} else {
|
||||||
|
@ -81,7 +84,8 @@ describe('comment tests', async () => {
|
||||||
await driver.get(projectUrl);
|
await driver.get(projectUrl);
|
||||||
|
|
||||||
// find the comment
|
// find the comment
|
||||||
let commentXpath = await `//div[@class="comment-bubble"]/span/span[contains(text(), "${buildNumber}")]`;
|
let commentXpath = await `//div[@class="comment-bubble"]/span/span[contains(text(),` +
|
||||||
|
` "${projectComment}")]`;
|
||||||
let postedComment = await findByXpath(commentXpath);
|
let postedComment = await findByXpath(commentXpath);
|
||||||
let commentVisible = await postedComment.isDisplayed();
|
let commentVisible = await postedComment.isDisplayed();
|
||||||
await expect(commentVisible).toBe(true);
|
await expect(commentVisible).toBe(true);
|
||||||
|
@ -100,7 +104,8 @@ describe('comment tests', async () => {
|
||||||
await driver.get(profileUrl);
|
await driver.get(profileUrl);
|
||||||
|
|
||||||
// find the comment
|
// find the comment
|
||||||
let newComment = await findByXpath(`//div[@class="comment "]/div/div[contains(text(), "${buildNumber}")]`);
|
let newComment = await findByXpath(`//div[@class="comment "]/div/div[contains(text(),` +
|
||||||
|
` "${profileComment}")]`);
|
||||||
let commentVisible = await newComment.isDisplayed();
|
let commentVisible = await newComment.isDisplayed();
|
||||||
await expect(commentVisible).toBe(true);
|
await expect(commentVisible).toBe(true);
|
||||||
|
|
||||||
|
@ -122,7 +127,7 @@ describe('comment tests', async () => {
|
||||||
await driver.get(studioUrl);
|
await driver.get(studioUrl);
|
||||||
|
|
||||||
// find the comment
|
// find the comment
|
||||||
let commentXpath = `//div[@class="comment-bubble"]/span/span[contains(text(), "${buildNumber}")]`;
|
let commentXpath = `//div[@class="comment-bubble"]/span/span[contains(text(), "${studioComment}")]`;
|
||||||
let postedComment = await findByXpath(commentXpath);
|
let postedComment = await findByXpath(commentXpath);
|
||||||
let commentVisible = await postedComment.isDisplayed();
|
let commentVisible = await postedComment.isDisplayed();
|
||||||
await expect(commentVisible).toBe(true);
|
await expect(commentVisible).toBe(true);
|
||||||
|
@ -254,5 +259,54 @@ describe('comment tests', async () => {
|
||||||
let isHighlighted = await containsClass(commentContainer, 'highlighted');
|
let isHighlighted = await containsClass(commentContainer, 'highlighted');
|
||||||
await expect(isHighlighted).toBe(true);
|
await expect(isHighlighted).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('project: reply to comment', async () => {
|
||||||
|
await driver.get(projectUrl);
|
||||||
|
let commentXpath = `//span[contains(text(), "${projectComment}")]/../..`;
|
||||||
|
let replyXpath = commentXpath + '//span[@class = "comment-reply"]';
|
||||||
|
await clickXpath(replyXpath);
|
||||||
|
|
||||||
|
// type reply
|
||||||
|
let replyRow = '//div[contains(@class, "comment-reply-row")]';
|
||||||
|
let replyComposeXpath = replyRow + '//textArea[@class = "inplace-textarea"]';
|
||||||
|
let composeBox = await findByXpath(replyComposeXpath);
|
||||||
|
await composeBox.sendKeys(projectReply);
|
||||||
|
|
||||||
|
// click post
|
||||||
|
let postButton = await findByXpath(replyRow + '//button[@class = "button compose-post"]');
|
||||||
|
await postButton.click();
|
||||||
|
|
||||||
|
// find reply
|
||||||
|
await driver.sleep(500);
|
||||||
|
await driver.get(projectUrl);
|
||||||
|
let postedReply = await findByXpath(`//span[contains(text(), "${projectReply}")]`);
|
||||||
|
let commentVisible = await postedReply.isDisplayed();
|
||||||
|
await expect(commentVisible).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('studio: reply to comment', async () => {
|
||||||
|
await driver.get(studioUrl);
|
||||||
|
|
||||||
|
// find the comment and click reply
|
||||||
|
let commentXpath = `//span[contains(text(), "${studioComment}")]/../..`;
|
||||||
|
await clickXpath(commentXpath + '//span[@class = "comment-reply"]');
|
||||||
|
|
||||||
|
// type reply
|
||||||
|
let replyRow = '//div[contains(@class, "comment-reply-row")]';
|
||||||
|
let replyComposeXpath = replyRow + '//textArea[@class = "inplace-textarea"]';
|
||||||
|
let composeBox = await findByXpath(replyComposeXpath);
|
||||||
|
await composeBox.sendKeys(studioReply);
|
||||||
|
|
||||||
|
// click post
|
||||||
|
let postButton = await findByXpath(replyRow + '//button[@class = "button compose-post"]');
|
||||||
|
await postButton.click();
|
||||||
|
|
||||||
|
// find reply
|
||||||
|
await driver.sleep(500);
|
||||||
|
await driver.get(studioUrl);
|
||||||
|
let postedReply = await findByXpath(`//span[contains(text(), "${studioReply}")]`);
|
||||||
|
let commentVisible = await postedReply.isDisplayed();
|
||||||
|
await expect(commentVisible).toBe(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue