Skip to content

Conversation

pzrq
Copy link
Contributor

@pzrq pzrq commented Jan 23, 2017

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:

  • The addition of the new data-test-id HTML <form> attributes and the actual code fix of the onSubmit handlers have been backported and manually tested to work
  • the functional test changes have not been backported

Would 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.

pzrq added 2 commits January 23, 2017 14:30
… 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).
Copy link
Contributor

@rueckstiess rueckstiess left a 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
Copy link
Contributor

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"
Copy link
Contributor

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)}>
Copy link
Contributor

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?

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?

Copy link
Contributor

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)}
Copy link
Contributor

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)}
Copy link
Contributor

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) {
Copy link
Contributor

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?

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.

@rueckstiess
Copy link
Contributor

Tested locally too, seems to fix the issue. 👍

pzrq added 2 commits January 26, 2017 01:48
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
@pzrq pzrq merged commit ef915d1 into 1.5-releases Jan 25, 2017
@pzrq pzrq deleted the COMPASS-697-backport-enter-key-1-5 branch January 25, 2017 15:04
@pzrq
Copy link
Contributor Author

pzrq commented Jan 25, 2017

Applied changes as requested.

Thanks for reviewing @rueckstiess @KeyboardTsundoku 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants