Commit Graph

20 Commits

Author SHA1 Message Date
Richard Cox 8535975d4a Remove broken test for localization component in side nav 2022-09-23 11:16:40 +01:00
Richard Cox f1865424cc Fix one of the e2e tests 2022-09-09 14:13:58 +01:00
Giuseppe Leo 698194fea3
Create E2E tests for cluster CRUD operations (#6284)
* Set data test id and allow complex component to have default and inherited values for all the actions

* Create cluster tests with steps; Create cluster E2E test

* Extend command to use selector matchers

* Create test for cluster navigation and deletion

* Extend commands to find by id as in get method

* Extend documentation with guidelines and info about E2E

* Correct cluster delete and details tests to get menu within speciftc cluster row

* Add remaining E2E tests for the cluster

* Add baseUrl to the paths

* Add RKE2 selection on cluster creation for CI

* Add E2E debugging information

* Rename clluster manager E2E for consistency

* Correct data test ID after rebase

* Prevent cluster provider errors if no management parameter is provided

* Prevent accessing objects in mutation if none is provided

* Remove imported cluster sample due discarded logic

* Reset RKE2 switch on cluster creation

* Adjust test naming for cluster manager

* Group tests under scoped cases
2022-08-17 20:48:20 +02:00
Giuseppe Leo dc26bd93c6
Reset user preferences on E2E start or requests (#6535)
* Add user preference command for Cypress stubs

* Include global types to Cypres TS configuration

* Prevent distributed interface issues on lint
2022-08-05 10:00:21 +02:00
Giuseppe Leo a71dee857e
Update Cypress to version 10 (#6146)
* Run Cypress migration scripts; Update failing parts

* Move env var assignments to Cypress configuration; Correct env patterns

* Correct imports within the Cypress tests

* Correct TS linting configuration errors after update

* Return directly spec path in cypress configuration
2022-07-27 15:53:36 +02:00
Giuseppe Leo 04ea726362
Skip flaky test (#6188) 2022-06-16 15:55:35 +02:00
Giuseppe Leo b068e4e12c
e2e Tests: CI: Setup test to run for PR pointing to master (#5451)
* Configure E2E tests for CI

* Add Github CI configuration for E2E

* Write welcome and first login tests

* Add Docker initialization script

* Sort tests

* Allow to trigger input checkboxes from labels

* Run setup script in a single test to avoid server requirement restrictions with authentication in a single session

* Trigger E2E tests on PR to master only

* Correct password for E2E; extend documentation about authentication

* Allow E2E jobs to be excluded if present tag in the title

* Build and start project for E2E using SPA flag and prod env for CI

* Assure link presence while navigating in E2E tests; Improve readability

* Allow to skip setup E2E tests for remote initialized instances

* Update Cypress related libraries

* Replace class to id selections for E2E tests

* Create Page Actions PO; Move navigation related tests; Ensure Home page tests to be reliable

* Correct login redirection to include local

* Reset cards for E2E changelog

* E2E: Add manual waiting while opening the side navigation

* Change CI E2E skip exception from title to label

* E2E: Increase waiting time for side navigation racing condition issue

* Remove bootstrap setup assertion

* Allow to manually trigger E2E tests

* Disabling all flaky tests which cause race condition random failure

* Remove setup scripts and commands due opted out solution

* Rename files, tests and PO

* Remove libraries added while rebasing

* Replace ID with data-testid for E2E element selection

* Skip entirely E2E test Job on label in favor of single steps condition

* Use run ID and number for artifacts names

* Updated documentation related to E2E selectors and added best practice link

* Remove passed tests video after each test

* Add getId command to select elements by attribute

* Correct all the selections of all the existing tests; Add related data id for testing purpose

* Add terms and ignore log issue with TS

* Add missing ID to data conversion

* Replace password cases with new PO

* Restore locale login check in E2E

* Enable artifacts upload only on failure

* Disable video artifacts upload from E2E runs

* Correct linting issue with a TODO note

* Correct script naming and docker command to avoid killing other containers

* Remove unnecessary --spa flag from existing scripts

* Correct tests to do not rely spcifically to the version while testing changelog text

* Adjust documentation definitions

* Reference issue in the TODOs

* Allow failing if no container found while stopping docker

* Rephrase E2E commands reference in docs

* Correct Docker stop command typo with image name
2022-06-10 13:31:49 +02:00
Richard Cox 3a04cf7b1a Plugins: Initial codebase refactor and plugin support (#4779)
* Doc

* v0.7.0

* v0.7.1

* v0.7.2

* Add creators

* v0.1.14

* v0.1.17

* Add Yarn link

* Tidy ups and typos

* Allow models to be loaded from plugins

* v0.1.15

* v0.1.18

* v0.6.6

* Improve readme, fix cyperss log msg

* v0.1.17

* v0.1.19

* v0.6.7

* v0.6.8

* Fix logo ref when in shell

* Fix lint issues

* Fix error in example

* Fix script to work on linux

* Add ability to revert moves without losing changes

* Fix bug with custom models in a plugin

* Fix build of UI packages

* Add dist-pkg to .eslintignore

* Pull out util from extend-router to prevent router being pulled in UI packages

* Update PLUGINS.md

* Remove duplicate dependency

* Reduce size of built UI packages

* Share codemirror. Other tidy ups

* Further improvements

* Tidy ups to support i18n in plugins

* Clen up add comments

* More clean-ups and comments added

* Rename from extension to plugin

* Missed file in rename

* v0.6.9

* TIdy ups following rename

* v0.1.20

* v0.1.21

* More refactor and tidy up

* v0.1.22

* v0.1.18

* v0.1.19

* v0.1.23

* v0.6.10

* Version Packages. Improve naming. Unload.

* v0.6.11

* v0.1.20

* v0.1.21

* v0.1.24

* v0.6.12

* v0.1.25

* v0.1.22

* v0.6.13

* Fix issues when plugin is builtin

* Add missing files

* Fix lint issues and watcher ignores

* Fixes following review

* v0.1.28

* v0.1.31

* v0.6.20

* Fix coer.js version

* Fix bug where plugins included via npm don't work

* Changes post merge

* Move plugins doc to dev guide, add note at top of README

* Update cypress version

* Add note about the reset --hard in rejig -d

* Fixes post merge

* Rename @ranch to @rancher and ad plugins

* Improve routes support, add package assets support

* Add uninstall hooks and pass interal opts

* Fix rejig script

* Minor fixes

* Routing tweaks
- attempted to improve `addRoutes` typing, failed a lot
- improved typings in plugins.ts
- added "@pkg/*" entry and vue-shim (for importing components) to the pkg creator
- fixed some linting
- safely fail when Verdaccio isn't running
- fixed some typos

* Remove frontmatter-markdown-loader reference from nuxt-config

* Revert "Remove frontmatter-markdown-loader reference from nuxt-config"

This reverts commit 29ef6f2f7b.

* Exclude creators from dashboard build

* Revert "Exclude creators from dashboard build"

This reverts commit 8ede93ee7c.

* Ingore creators via tsconfig
- We're still susceptible with vue shims in multiple packages
- Need to determine why packages can't use shim from route
- Probably need to move `./vue-shim.d.ts` in to `./shell`. Needs testing with a pkg that imports a component

Co-authored-by: Richard Cox <richard.cox@suse.com>
# Conflicts:
#	components/nav/Header.vue
#	nuxt.config.js
#	package.json
#	yarn.lock
2022-05-10 10:00:39 +01:00
Nancy 20976a70d4
Unit test jest (#3405)
* initial setup; unitinput simple example tests

* add coverage report

* testing info in docs

* rm unused babel config options

fix jest typescript

update unitinput unit tests

* Correct tsconfig Jest/Cypress conflicts; update libraries version; remove unnecessary Mocha/Chai

* Update unit input tests

* Ignore new rules from eslint

* Add local unit test script; Disable unit test coverage

* Add babel plugin definitions to avoid warning spam on build

* Pin @babel/preset-env to avoid issues with missing utils;  Merge yarn config from master; Moved packages to devDependencies as not required after build

* Remove file exclusion from editor settings

* Add Lodash types

* Add types to array utility

* Update ESlint rules to allow overload types declarations

* Create Jest tests from existing Ava ones

* Add Jest launcher for debugging

* Update Drone test script runner with CI version

* Remove Ava libraries, scripts and configuration

* Add Jest related linting rules

* Move tests within the related code path

Co-authored-by: cnotv <giuseppe.leo@suse.com>
2022-03-23 11:35:26 +01:00
Josh Soref 2256ee3acf
Spelling (#4994)
* spelling: accommodate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: additional

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: address

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: array

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: async

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: attributes

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: automatically

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: available

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: awesomeness

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: because

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: behaviour

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: bootstrapping

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: calculated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: callback

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: codemirror

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: config

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: configurable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: constraints

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: default

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: deux

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: different

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: dissimilar

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: ensure

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: evaluate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: example

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: existence

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: falsy

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: getter

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: global

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: grafana

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: image

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: integer

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: manifest

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: microservices

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: milli

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: mismatch

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: modifier

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: namespace

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: navigation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: nullable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: occurred

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: package

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: param

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: permissions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: portion

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: potentially

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: powershell

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: recipient

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: records

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: representation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: request

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: required

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: returns

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: separated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: should

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: software

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: substitute

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: support

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: their

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unknown

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: upfront

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: upgrade

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: useful

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: validator

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-11 10:09:54 +00:00
Richard Cox 0236d06756 Changes following review 2022-01-07 16:50:48 +00:00
Richard Cox aa446d72bb Update E2E tests with Page Objects, improve structuring
- Tests are now in their own folder and more suitably organised / named
- E2E Page Object components have been added and used everywhere applicable (not every test has been updated to have POs, though where they exist they're used). For more info on POs see the changes to the `development.md` doc
- Some examples of PO functionality
  ```
  HomePage.gotTo()
  new HomePagePo().checkIsCurrentPage()
  new BurgerMenuPo().clusters()
  new AsyncButtonPO('.my-button').isDisabled()
  new LoginPagePo().username().set('admin');)
  ```
TODO
- Majorly expand tests and POs
- Separate tests into short, smoke test style groups and longer more time consuming tests. The smoke tests could run on PRs and the full suite nightly.
- The existing tests could be sped up by avoiding a page navigation before each individual test, though this comes with a higher chance of bleeding state.
2021-12-23 10:08:43 +00:00
Nancy Butler 661452d0c9 update nav e2e test 2021-11-30 08:55:50 -07:00
Nancy Butler f299272250 account for hash in nav item : current route comparison 2021-11-30 08:55:45 -07:00
Nancy Butler ecaa6507b7 fix e2e dev command
toplevelmenu test

fix cypress baseUrl trailing slash
2021-11-03 14:35:07 -07:00
Nancy Butler 51a85fb20b fix login tests w/ sessions 2021-11-03 14:34:54 -07:00
Nancy Butler e38f9ed8e2 cypress sessions
nav tests
2021-11-03 14:34:54 -07:00
Nancy Butler 4c0b561d7e upgrade cypress and use login sessions
remove trailing slash from cypress conifg baseUrl
2021-11-03 09:08:11 -07:00
Nancy Butler 9386ba6e48 working cypress run
toplevelmenu class
2021-08-31 07:22:19 -07:00
Nancy Butler 53b758da1a e2e Cypress initial login tests
convert cypress code to ts

fix cypress linting
2021-08-25 11:07:53 -07:00