From 8f8a1271e838be3baa8f00dce10f1f95dfe2e091 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Wed, 17 Jul 2019 20:32:05 -0700 Subject: [PATCH 1/4] tests(acceptance): Add tests for resolvingissues in Issues List --- .../static/sentry/app/components/checkbox.jsx | 5 +- .../app/components/eventOrGroupHeader.jsx | 1 + .../app/components/stream/groupCheckBox.jsx | 8 +- tests/acceptance/page_objects/issue_list.py | 26 ++++++ .../test_organization_group_index.py | 79 +++++++++++++------ .../__snapshots__/checkbox.spec.jsx.snap | 1 - .../__snapshots__/groupSimilar.spec.jsx.snap | 1 - .../subscriptionBox.spec.jsx.snap | 1 - 8 files changed, 89 insertions(+), 33 deletions(-) create mode 100644 tests/acceptance/page_objects/issue_list.py diff --git a/src/sentry/static/sentry/app/components/checkbox.jsx b/src/sentry/static/sentry/app/components/checkbox.jsx index 087585b4d038e4..10e4c7a5ce7c8e 100644 --- a/src/sentry/static/sentry/app/components/checkbox.jsx +++ b/src/sentry/static/sentry/app/components/checkbox.jsx @@ -1,5 +1,4 @@ import React from 'react'; -import classNames from 'classnames'; class Checkbox extends React.Component { static defaultProps = { @@ -7,9 +6,7 @@ class Checkbox extends React.Component { }; render() { - const {className, ...otherProps} = this.props; - const cx = classNames('chk-select', className); - return ; + return ; } } diff --git a/src/sentry/static/sentry/app/components/eventOrGroupHeader.jsx b/src/sentry/static/sentry/app/components/eventOrGroupHeader.jsx index 3629debe5e3795..1a5d5205979a00 100644 --- a/src/sentry/static/sentry/app/components/eventOrGroupHeader.jsx +++ b/src/sentry/static/sentry/app/components/eventOrGroupHeader.jsx @@ -59,6 +59,7 @@ class EventOrGroupHeader extends React.Component { return ( {!hideLevel && level && ( diff --git a/src/sentry/static/sentry/app/components/stream/groupCheckBox.jsx b/src/sentry/static/sentry/app/components/stream/groupCheckBox.jsx index 99996f8fbb6377..ef7c81ad30ebd8 100644 --- a/src/sentry/static/sentry/app/components/stream/groupCheckBox.jsx +++ b/src/sentry/static/sentry/app/components/stream/groupCheckBox.jsx @@ -1,10 +1,11 @@ import PropTypes from 'prop-types'; import React from 'react'; -import createReactClass from 'create-react-class'; import Reflux from 'reflux'; +import createReactClass from 'create-react-class'; -import SelectedGroupStore from 'app/stores/selectedGroupStore'; +import {t} from 'app/locale'; import Checkbox from 'app/components/checkbox'; +import SelectedGroupStore from 'app/stores/selectedGroupStore'; const GroupCheckBox = createReactClass({ displayName: 'GroupCheckBox', @@ -29,7 +30,7 @@ const GroupCheckBox = createReactClass({ } }, - shouldComponentUpdate(nextProps, nextState) { + shouldComponentUpdate(_nextProps, nextState) { return nextState.isSelected !== this.state.isSelected; }, @@ -50,6 +51,7 @@ const GroupCheckBox = createReactClass({ render() { return ( `; diff --git a/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap b/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap index ffed063fba5e90..d6aae27a4b80c0 100644 --- a/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap +++ b/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap @@ -658,7 +658,6 @@ exports[`Issues Similar View renders with mocked data 1`] = ` > Date: Wed, 17 Jul 2019 20:33:12 -0700 Subject: [PATCH 2/4] snapshot --- .../__snapshots__/groupSimilar.spec.jsx.snap | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap b/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap index d6aae27a4b80c0..5da5b293fefe92 100644 --- a/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap +++ b/tests/js/spec/views/organizationGroupDetails/__snapshots__/groupSimilar.spec.jsx.snap @@ -844,6 +844,7 @@ exports[`Issues Similar View renders with mocked data 1`] = ` size="normal" > Date: Mon, 22 Jul 2019 11:02:21 -0700 Subject: [PATCH 3/4] move around some page objects + create new ones for reolved issues --- tests/acceptance/page_objects/base.py | 3 +++ tests/acceptance/page_objects/issue_list.py | 8 ++++++-- tests/acceptance/test_organization_group_index.py | 10 ++++------ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/tests/acceptance/page_objects/base.py b/tests/acceptance/page_objects/base.py index 37e36532e8c7a0..e8f71cee9484e9 100644 --- a/tests/acceptance/page_objects/base.py +++ b/tests/acceptance/page_objects/base.py @@ -11,6 +11,9 @@ def __init__(self, browser): def driver(self): return self.browser.driver + def wait_until_loaded(self): + self.browser.wait_until_not('.loading-indicator') + class BaseElement(object): def __init__(self, element): diff --git a/tests/acceptance/page_objects/issue_list.py b/tests/acceptance/page_objects/issue_list.py index 4b6384b88654b7..610b1a897546f1 100644 --- a/tests/acceptance/page_objects/issue_list.py +++ b/tests/acceptance/page_objects/issue_list.py @@ -22,5 +22,9 @@ def resolve_issues(self): self.browser.click('[aria-label="Resolve"]') self.browser.click('[data-test-id="confirm-modal"]') - def wait_until_loaded(self): - self.browser.wait_until_not('.loading-indicator') + def wait_for_resolved_issue(self): + self.browser.wait_until('[data-test-id="resolved-issue"]') + + def find_resolved_issues(self): + self.browser.find_elements_by_css_selector( + '[data-test-id="resolved-issue"]') diff --git a/tests/acceptance/test_organization_group_index.py b/tests/acceptance/test_organization_group_index.py index 5b3f25bd83fe10..7d9960d32bb5e4 100644 --- a/tests/acceptance/test_organization_group_index.py +++ b/tests/acceptance/test_organization_group_index.py @@ -91,10 +91,9 @@ def test_resolve_issues(self, mock_now): self.page.select_issue(1) self.page.select_issue(2) self.page.resolve_issues() + self.page.wait_for_resolved_issue() + resolved_groups = self.page.find_resolved_issues() - self.browser.wait_until('[data-test-id="resolved-issue"]') - resolved_groups = self.browser.find_elements_by_css_selector( - '[data-test-id="resolved-issue"]') assert len(resolved_groups) == 2 @patch('django.utils.timezone.now') @@ -109,8 +108,7 @@ def test_resolve_issues_multi_projects(self, mock_now): self.page.select_issue(1) self.page.select_issue(2) self.page.resolve_issues() + self.page.wait_for_resolved_issue() + resolved_groups = self.page.find_resolved_issues() - self.browser.wait_until('[data-test-id="resolved-issue"]') - resolved_groups = self.browser.find_elements_by_css_selector( - '[data-test-id="resolved-issue"]') assert len(resolved_groups) == 2 From 52a87cb81e9ad0279a3ad40e7cd9dd7c8a905552 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Mon, 22 Jul 2019 13:19:27 -0700 Subject: [PATCH 4/4] oops --- tests/acceptance/page_objects/issue_list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/acceptance/page_objects/issue_list.py b/tests/acceptance/page_objects/issue_list.py index 610b1a897546f1..e74c4751801015 100644 --- a/tests/acceptance/page_objects/issue_list.py +++ b/tests/acceptance/page_objects/issue_list.py @@ -26,5 +26,5 @@ def wait_for_resolved_issue(self): self.browser.wait_until('[data-test-id="resolved-issue"]') def find_resolved_issues(self): - self.browser.find_elements_by_css_selector( + return self.browser.find_elements_by_css_selector( '[data-test-id="resolved-issue"]')