-
Notifications
You must be signed in to change notification settings - Fork 234
COMPASS-697: Backport COMPASS-666: Keyboard Enter on Create Collection Modal sometimes cause page refresh to 1.5-releases #758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… refresh (#753) NOTE: Due to merge conflicts in our rapidly evolving functional test suite since creating the 1.5.x branch, ‘data-test-id’ values and the actual code fix has been backported and manually tested, but the functional test changes have not been back ported.
* Standardise mongodb-runner CI mongodb-js/connection-model#138 NOTE: `npm run check && npm run test-unit` passes for me locally on macOS, but the functional tests `npm test ` still error with results: 177 passing (50s) 2 pending 10 failing 1) Compass #spectron when working with the application when working with collections when selecting a collection renders the sample collection in the title: Error: element (button[data-hook=start-button]) still not visible after 5000ms at elements("button[data-hook=start-button]") - isVisible.js:54:17 at isVisible("button[data-hook=start-button]") - waitForVisible.js:37:22 2) Compass #spectron when working with the application when working with collections when selecting a collection renders the schema tab: Error: An element could not be located on the page using the given search parameters. at element("li#SCHEMA") - click.js:12:17 at elementIdDisplayed("0.9192226665154364-7") - isVisible.js:71:55 3) Compass #spectron when working with the application when working with collections when selecting a collection when applying a filter the text in refine bar matches query: Error: Promise was rejected with the following reason: Error: An element could not be located on the page using the given search parameters ("input#refine_input"). at elements("input#refine_input") - getValue.js:18:17 at getValue("input#refine_input") - waitForValue.js:37:22 4) Compass #spectron when working with the application when working with collections when selecting a collection when applying a filter samples the matching documents: Error: element (div.sampling-message) still not visible after 15000ms at elements("div.sampling-message") - isVisible.js:54:17 at isVisible("div.sampling-message") - waitForVisible.js:37:22 5) Compass #spectron when working with the application when working with collections when selecting a collection when applying a filter updates the schema view: Error: An element could not be located on the page using the given search parameters ("li.bubble code.selectable"). at elements("li.bubble code.selectable") - getText.js:18:17 at getText("li.bubble code.selectable") - compass-functional.test.js:120:16 6) Compass #spectron when working with the application when working with collections when selecting a collection when applying a filter filters out non-matches from the document list: Error: An element could not be located on the page using the given search parameters. at element("li#DOCUMENTS") - click.js:12:17 at elementIdDisplayed("0.9192226665154364-7") - isVisible.js:71:55 7) Compass #spectron when working with the application when working with collections when selecting a collection when applying a filter includes documents that match the filter: Error: An element could not be located on the page using the given search parameters ("div.element-value-is-string"). at elements("div.element-value-is-string") - getText.js:18:17 at getText("div.element-value-is-string") - compass-functional.test.js:138:16 8) Compass #spectron when working with the application when working with collections when working in the documents tab when viewing documents renders the documents in the list: Error: An element could not be located on the page using the given search parameters. at element("li#DOCUMENTS") - click.js:12:17 at elementIdDisplayed("0.9192226665154364-7") - isVisible.js:71:55 9) Compass #spectron when working with the application when working with collections when working in the explain tab when viewing the explain tab renders the stages: Error: An element could not be located on the page using the given search parameters. at element("li#EXPLAIN_PLAN") - click.js:12:17 at elementIdDisplayed("0.9192226665154364-7") - isVisible.js:71:55 10) Compass #spectron when working with the application when working with collections when working in the indexes tab when viewing the indexes tab renders the indexes: Error: An element could not be located on the page using the given search parameters. at element("li#INDEXES") - click.js:12:17 at elementIdDisplayed("0.9192226665154364-7") - isVisible.js:71:55 * Go back to the full pretest and post test hooks Annoying as we can’t test multiple topologies, but probably a decent idea for Compass itself as we should delegate as much as possible to each public mongodb-js dependency. Note: Needed as otherwise TravisCI hangs for 10 minutes then kills the job even though it completes with exit code 0, i.e. successfully. e.g. https://travis-ci.com/10gen/compass/jobs/57691028 * Drop lts/boron We can add it in when we decide we actually want to switch, as our private Travis seems to be a little under-powered at this time (build queues backing up).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple small comments to fix. Thanks!
.travis.yml
Outdated
language: node_js | ||
node_js: | ||
- 6.3.1 | ||
- 6.3.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While you're fixing this up, can you either add or remove the space before the dash for all array elements?
<form name="create-collection-dialog-form"> | ||
<form name="create-collection-dialog-form" | ||
onSubmit={this.onCreateCollectionButtonClicked.bind(this)} | ||
data-test-id="create-collection-modal" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need these data-test-id
markers if we're not going to test these? Is 1.5 before Durran introduced data-test-id
even? In that case, I'd remove them.
</div> | ||
<form> | ||
<form data-test-id="drop-collection-modal" | ||
onSubmit={this.onDropCollectionButtonClicked.bind(this)}> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The indentation looks a little off here. Can you use 2 spaces?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
extra indent to indicate that it's part of the previous line, is this not right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I always use 2 spaces for that, this is 4. not a big deal, if the linter doesn't complain about it.
<Modal.Body> | ||
<form name="create-collection-dialog-form"> | ||
<form name="create-collection-dialog-form" | ||
onSubmit={this.onCreateDatabaseButtonClicked.bind(this)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here. 2 spaces.
</div> | ||
<form> | ||
<form | ||
onSubmit={this.onDropDatabaseButtonClicked.bind(this)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 spaces indentation
evt.stopPropagation(); | ||
|
||
// prevent drop of collection if names don't match | ||
if (this.state.confirmName !== this.state.name) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did we not confirm the typed name is identical before? What was the behaviour for 1.5.1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pressing enter would've caused a refresh in 1.5.1, after adding an onSubmit method it would drop the collection without checking if it matches.
Tested locally too, seems to fix the issue. 👍 |
It’s that way on master, just too lazy to mine git log to cherry-pick the change that did it somewhere between 1.5 and 1.7, to pass code review comments. #758
Applied changes as requested. Thanks for reviewing @rueckstiess @KeyboardTsundoku 👍 |
This backports COMPASS-666 to our
1.5-releases
branch.NB: Due to merge conflicts in our rapidly evolving functional test suite since creating the
1.5-releases
branch:data-test-id
HTML<form>
attributes and the actual code fix of theonSubmit
handlers have been backported and manually tested to workWould be appreciated if someone with time confirms this 🐛-fix works for them too on the 1.5-releases branch locally or via an Evergreen patch build before merging.