Files
react-native-devtools-frontend/test/e2e/issues/hidden-issues-row_test.ts
T
Jack Franklin e839c0cf22 Enable long import wrapping for JS imports
DISABLE_THIRD_PARTY_CHECK=big clang format run against all files in
front_end and test/

Bug: 1319340
Change-Id: I1fff63cb07544ccd0e3059fc901f9a48ff4af13b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3598879
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Wolfgang Beyer <wolfi@chromium.org>
2022-05-03 10:22:12 +00:00

130 lines
5.6 KiB
TypeScript

// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assert} from 'chai';
import {assertNotNullOrUndefined, goToResource, waitFor} from '../../shared/helper.js';
import {describe, it} from '../../shared/mocha-extensions.js';
import {
getHiddenIssuesRow,
getHiddenIssuesRowBody,
getHideIssuesMenu,
getHideIssuesMenuItem,
getIssueHeaderByTitle,
ISSUE,
navigateToIssuesTab,
} from '../helpers/issues-helpers.js';
describe('Hide issues row', async () => {
it('should be visible after hiding an issue', async () => {
await goToResource('issues/cross-origin-portal-post.html');
await navigateToIssuesTab();
const issueTitle = 'Cross-origin portal post messages are blocked on your site';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
assertNotNullOrUndefined(issueHeader);
await issueHeader.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
assertNotNullOrUndefined(menuItem);
await menuItem.click();
await waitFor('.hidden-issue');
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
});
it('should expand after clicking', async () => {
await goToResource('issues/cross-origin-portal-post.html');
await navigateToIssuesTab();
const issueTitle = 'Cross-origin portal post messages are blocked on your site';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
assertNotNullOrUndefined(issueHeader);
await issueHeader.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
assertNotNullOrUndefined(menuItem);
await menuItem.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
let isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
await hiddenIssuesRow?.click();
const hiddenIssuesRowBody = await getHiddenIssuesRowBody();
isHidden = await hiddenIssuesRowBody?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const classes = await hiddenIssuesRow?.evaluate(node => node.classList.toString());
assert.include(classes, 'expanded');
});
it('should contain issue after clicking', async () => {
await goToResource('issues/cross-origin-portal-post.html');
await navigateToIssuesTab();
const issueTitle = 'Cross-origin portal post messages are blocked on your site';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
assertNotNullOrUndefined(issueHeader);
await issueHeader.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
assertNotNullOrUndefined(menuItem);
await menuItem.click();
await waitFor('.hidden-issue');
const hiddenIssuesRow = await getHiddenIssuesRow();
let isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
await hiddenIssuesRow?.click();
const hiddenIssuesRowBody = await getHiddenIssuesRowBody();
isHidden = await hiddenIssuesRowBody?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const firstChild = await hiddenIssuesRowBody?.$eval('.issue', node => node.classList.toString());
assertNotNullOrUndefined(firstChild);
assert.include(firstChild, 'hidden-issue');
});
it('should contain Unhide all issues button', async () => {
await goToResource('issues/cross-origin-portal-post.html');
await navigateToIssuesTab();
const issueTitle = 'Cross-origin portal post messages are blocked on your site';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
assertNotNullOrUndefined(issueHeader);
await issueHeader.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
assertNotNullOrUndefined(menuItem);
await menuItem.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const hasUnhideAllIssuesBtn = await hiddenIssuesRow?.evaluate(
node => node.lastElementChild?.lastElementChild?.classList.contains('unhide-all-issues-button'));
assert.isTrue(hasUnhideAllIssuesBtn);
});
it('should get hidden and unhide all issues upon clicking unhide all issues button', async () => {
await goToResource('issues/cross-origin-portal-post.html');
await navigateToIssuesTab();
const issueTitle = 'Cross-origin portal post messages are blocked on your site';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
assertNotNullOrUndefined(issueHeader);
await issueHeader.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
assertNotNullOrUndefined(menuItem);
await menuItem.click();
const unhideAllIssuesbtn = await waitFor('.unhide-all-issues-button');
await unhideAllIssuesbtn.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isTrue(isHidden);
await waitFor(ISSUE);
});
});