influxdb/e2e/README.md

104 lines
2.7 KiB
Markdown

## Selenium-Accept
Selenium Acceptance tests for the Influxdbv2 UI.
**Run cycle**
```bash
npm install
npm run influx:setup
npm test
node src/utils/htmlReport.js
node src/utils/junitReport.js
```
Note that the final two reporting steps can be bundled into `package.json` scripts, or can be called as a part of the `package.json` *test* script. They are shown here to show how third party components are used to generate reports.
### Tips
Run only the feature under development
```bash
npm test -- features/onboarding/onboarding.feature:4
```
Number is line number where the target scenario starts.
### API Notes
Steps classes should directly or indirectly inherit from the `baseSteps` class in `baseSteps.js`. This class contains some generic methods to streamline Selenium and Cucumber interactions. More will be added as the test suite grows. Here is a list as of 1.10.2019.
`assertNotPresent(selector)`
`assertNotVisible(element)`
`assertVisible(element)`
`clearInputText(input)`
`clickAndWait(element,
wait = async () => { await this.driver.sleep((await this.driver.manage().getTimeouts()).implicit/20); })`
`clickPopupWizardContinue()`
`clickPopupWizardPrevious()`
`clickPopupWizardFinish()`
`clickPopupCancelBtn()`
`closeAllNotifications()`
`containsNotificationText(text)`
`containsErrorNotification(text)`
`delay(timeout)`
`dismissPopup()`
`hoverOver(element)`
`typeTextAndWait(input, text,
wait = async () => { await this.driver.sleep((await this.driver.manage().getTimeouts()).implicit/20); })`
`verifyElementContainsText(element, text)`
`verifyElementContainsClass(element, clazz)`
`verifyElementDoesNotContainClass(element, clazz)`
`verifyElementDisabled(element)`
`verifyElementErrorMessage(msg, equal = true)`
`verifyElementText(element, text)`
`verifyInputErrorIcon()`
`verifyInputEqualsValue(input, value)`
`verifyInputContainsValue(input, value)`
`verifyInputDoesNotContainValue(input, value)`
`verifyNoElementErrorMessage()`
`verifyNoFormInputErrorIcon()`
`verifyPopupAlertContainsText(text)`
`verifyPopupAlertMatchesRegex(regex)`
`verifyPopupNotPresent()`
`verifyWizardContinueButtonDisabled()`
`verifyWizardDocsLinkURL(url)`
Pages should inherit directly or indirectly from the `basePage` class in `basePage.js`. This contains many common selectors and element getters found either in the over all framework or in common components such as wizards and popups.
The file `commonStepDefs.js` contains a library of test statements leveraging `baseSteps` and covering functionality that will often need to be repeated. It also contains steps for accessing methods from `influxUtils.js` for accessing the REST api through AXIOS, which is useful for setting up test data for a feature set.