Commit graph

36 commits

Author SHA1 Message Date
Spencer
76cc216aa0
[@kbn/expect] "fork" expect.js into repo (#33761) (#33799)
* [@kbn/expect] "fork" expect.js into repo

* [eslint] autofix references to expect.js

* [tslint] autofix all expect.js imports

* now that expect.js is in strict mode, avoid reassigning fn.length
2019-03-25 13:13:12 -07:00
Spencer
2c2637d4ee
[7.0] [ts] add script to verify that all ts is in a project (#32727) (#32827)
* [ts] add script to verify that all ts is in a project (#32727)

Based on #32705 

We currently have TypeScript code that was backported to 7.0, which was backported without issue because it falls outside of any TypeScript projects in 7.0. This means that the pre-commit hooks break on changes to these files, and that they are not getting type checked by the type_check script. To fix this we need to verify that every typescript file in the repository is covered by a tsconfig.json file as part of CI.

* tests typescript migration (#31234)

* add typescript support for functional tests

* [ts][ftr] improve types for ftr and expect.js, cleanup changes to tsconfig files (#31948)

In https://github.com/elastic/kibana/pull/31234 there were some extra changes that I've reverted, like use of the `tsconfig-paths` package to magically rewrite import statements to defy the standard node module resolution algorithm, the inclusion of several unnecessary options in the `test/tsconfig.json` file, and changes of the line-endings in the config files. This also brings a few enhancements from https://github.com/elastic/kibana/pull/30190 including a modularized version of the expect.js types, and options for explicit mappings for the PageObjects and services used in ftr tests.
# Conflicts:
#	src/functional_test_runner/lib/config/schema.js
#	test/common/services/es.ts
#	test/functional/page_objects/index.ts
#	test/functional/services/apps_menu.js
#	yarn.lock
2019-03-08 19:50:34 -08:00
Spencer
50be0d888e
[ftr] wrap remote in browser service (#26394)
* [pageObjects/common] remove unused runScript method

* [pageObjects/common] remove almost unused doesCssSelectorExist method

* [pageObjects/graph] convert to use find/testSubjects services

* [pageObjects/discover] refactor out remote service

* [pageObjects/pointSeries] refactor out remote service

* [pageObjects/monitoring] refactor out remote service

* [ftr] refactor uses of remote to use browser or find

* [ftr/services/remote] wrap remote with browser service

* [pageObjects/security] refactor out uses of remote

* [ftr/services/browser] isolate element calls to find

* [ftr] rename remote service to __leadfoot__

* [ftr/leadfoot] cleanup some renames in find, keep names in other tests
2018-11-29 14:30:47 -08:00
Spencer
fad8d0cc3a
[ci][ftr][kbn/test] split up CI jobs (#25838)
* [ci][ftr][kbn/test] split up CI jobs

* [ci] run --assert-none-excluded in ci groups, before builds

* [ftr] improve error message when excluded tests found

* [ci] document other places the ciGroups live
2018-11-20 14:02:06 -08:00
Bill McConaghy
03d14a7a9c
fixing mangling of floating point numbers by console (#23685)
* fixing mangling of floating point numbers by console

* fixing tests

* fixing issue with large requests

* restoring old code for server side as it handles large responses better
2018-10-19 10:48:41 -04:00
Rashmi Kulkarni
4661d8543c
ES6 conversion on Console Test (#20009)
* ES6 conversion
2018-06-19 11:15:57 -07:00
liza-mae
a9011b32c1
Update browser window size for console test (#19664) 2018-06-04 16:58:36 -06:00
Spencer
f0cc432faf
Apache 2.0 license headers (#19383)
In order to make the license that applies to each file as clear as possible, and to be consistent with elasticsearch, we are adding Apache 2.0 license headers to the top of each file.

Existence of this header is enforced by eslint and tslint and missing headers were automatically added in the last commit by running:

```
node scripts/eslint --fix && node scripts/tslint --fix
```
2018-05-28 20:06:30 -07:00
Lee Drengenberg
842ed488c5
Support 1 Kibana and 1 Elasticsearch URL as input params (#9760)
* Support 1 Kibana and 1 Elasticsearch URL as input params

* Revert a previous change to test char substitution

* Allow setting TEST_KIBANA_URL and TEST_ES_URL for Cloud testing

* cleanup comment

* Update docs

* Refactor after PR review

* Changes from review

* fix default Kibana port to 5620

* Change es_test_config.js similar to kibana_test_server_url_parts.js
2018-04-18 13:18:56 -05:00
Lee Drengenberg
315e4cf122
Save html for failed tests (#16850)
* Fixes issue preventing stdin from defaulting

Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>

* Prevent prompting to overwrite when using stdin

Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>

* Remove log

Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>

* When failure, log URL and save page source

* log Taking screenshot  at info level

* Force a failure, then revert this

* [ftr/failureDebugging] create failure debugging service

* Cleanup and create the failure_debug/html dir, strip special chars from filenames

* Remove a debugging log

* refactored replacing invalid filename chars

* Revert forced failing tests
2018-03-13 16:46:56 -05:00
Spencer
5cddc10077
Upgrade to eslint 4 (#14862)
* [eslint] upgrade to 4.10.0

* [eslint-config-kibana] limit jest config to jest test files

* [ui_framework] remove trailing comma from rest-spreads

* [dashboard/tests] tag jest helpers with .test.js suffix

* explicitly import expect.js where used

* [eslint] apply auto-fixes

* [eslint] manually add/wrap some parens for compliance

* [npm] point to local packages for testing/review

* [jest] remove .test extension from jest helpers

* [ui_framework] fix trailing comma removal from 3bc661a1c8

* [packages] upgrade eslint packages
2017-11-14 18:16:59 -07:00
CJ Cenizal
05cbb92965 [eslint-config-kibana] Apply AirBnB spacing rules (#14522)
* Add AirBnB key-spacing rule.
* Add AirBnB comma-spacing rule.
2017-10-25 15:08:05 -07:00
Spencer
6998f07454 [uiSettings] auto create/upgrade saved config (#14164)
* [uiSettings] auto upgrade savedConfig doc when missing

* naming tweaks

* fix comments

* ensure that rcVersions are not found within a version

* add some tests for non-single digit versions/rcs/betas

* return the condition, rather than using an if()

* assert that getUpgradeableConfig() is always called once

* [uiSettingsService] remove excess space

* [savedObjectsClient] only attempt to createOrUpgradeSavedConfig once

* [uiSettings/routes/tests] remove unused assert helper

* [functional/console] correct test title

* [ftr/kibanaServer/uiSettings] fix disableToastAutohide timeout
2017-10-05 15:34:09 -07:00
Jonathan Budzenski
b278ad96a9 [functional tests] Remove default screenshots (#14122)
* [functional tests] Remove default screenshots

* Remove baseline screenshots
2017-09-26 08:37:12 -05:00
Shaunak Kashyap
27745f72a3 Revert the Getting Started page (#12154)
* Revert "When on an embedded page, bypass Getting Started gate check (#12040)"

This reverts commit 05293f1c8d.

* Revert "Making tweaks. (#12003)"

This reverts commit aa3fa06f61.

* Revert "Functional tests for the Getting Started page (#11850)"

This reverts commit 099178a7ca.

* Revert "Prevent flicker on Getting Started page (#11826)"

This reverts commit c4b3ade27d.

* Revert "Getting Started page (#11805)"

This reverts commit 32eff371f2.

* Remove check for Getting Started page from navigateToApp
2017-06-05 14:18:30 -07:00
Spencer
c9c8e8d066 [tests/functional] opt out of getting started on navigation (#11881)
* [tests/functional] automatically opt-out of getting started page on navigation

* [test/functional/commonPage] avoid circular reference

* [test/functional/commonPage] move check for getting started after url has settled

* [gettingStarted] prevent route resolution by returning halt promises

* [test/functional/commonPage] wait for kibana to load before checking for getting started

* [uiRoutes/setupWork] provide a token that can be thrown to halt setup work

* [ui/routes] rename reference to WAIT_FOR_URL_CHANGE_TOKEN

* address review feedback
2017-05-18 19:33:53 -07:00
Spencer
419f3132b8 [tests/functional] stop setting the default test timeout everywhere (#11777) 2017-05-15 16:46:04 -07:00
Shaunak Kashyap
32eff371f2 Getting Started page (#11805)
* Getting Started page (#11673)

* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import

* Attempting to fix breaking build

Apparently the Getting Started page is preventing access to Console (Dev Tools, really) so the functional tests for Console are failing. This commit opts the user out of the Getting Started page before attempting to navigate to Console.

* Cleanup on aisle testbed! (#11765)

* Navigate to getting started page so we can opt out of it
2017-05-15 14:04:16 -07:00
Spencer
2e7fed87fd [ftr] take screenshots on failure (#11709)
* [tests/functional] move screenshots to their own service

* [ftr] add testFailure and testHookFailure lifecycle hooks

* [tests/functional/screenshots] cleanup old screenshots at startup

* [test/functional/screenshots] take screenshots when tests fail

* [cli_plugin/install] fix test

* [ui/scanner] fix test
2017-05-11 12:07:23 -07:00
Spencer
90434765c0 [functionalTestRunner] replace intern (#10910)
* [functional_test_runner] replace functional testing tools with custom/pluggable solution

* [functional_test_runner] Convert unit tests to commonjs format

* [functional_test_runner] Fix dashboard test in wrong mode

* [functional_test_runner] Add dashboardLandingPage test subject

* [functional_test_runner] Get Visualize page object

* [functional_test_runner] Fix outdated references

* [functional_test_runner] Fix more outdated refs

* [functional_test_runner] Remove duplicate tests

* [functional_test_runner] Improve test readability

* [functional_test_runner] 😞 So many duplicate methods

* [functional_test_runner] Move mgmt `before` outside toplevel describe

* [functional_test_runner] Settings page obj missing methods

* [functional_test_runner] Add improvements from @gammon

* [functional_test_runner] Fix return statements in async funcs

* [functional_test_runner] Move before() to correct scope

* [functional_test_runner] Add after() hooks to remove index patterns

* [functional_test_runner] Attempt to fix vertical bar chart tests

* [functional_test_runner] Clean up

* [functional_test_runner] Reinstate unit tests

* [functional_test_runner] Set default loglevel back to info

* [functional_test_runner] Replace `context`s with `describe`s

* [functional_test_runner] Better error handling

* [functional_test_runner] Add in new Tile Map tests

* Incorporate changes from master

* [functional_test_runner] validate that every test file has a single top-level suite

* Update contributing doc with link to full doc

* [docs] Spelling and grammar fixes

* docs: writing and running functional tests

* [docs] Move plugin doc to plugin area

* [docs] Housekeeping. Doc in wrong place

* [docs] Remove dup doc file

* [grunt] Only run mocha_setup when running tests, not every grunt task
2017-04-11 17:01:06 -05:00
Spencer
e67790037a [esArchiver] combine elasticDump and ScenarioManager (#10359)
* As a part of bringing functional testing to plugins, esArchiver gives these plugins a way to capture and reload es indexes without needing to write a bunch of custom code. It works similarly to the elasticDump and ScenarioManager tools that it replaces.

Differences:
  - Streaming implementation allows for much larger archives
  - CLI for creating and using archives
  - Configurable archive location
  - Stores the data in gzipped files (better for source control, searching, large archives)
  - Automatically identifies and upgrades Kibana config documents

Methods:
  - `#load(name)`: import an archive
  - `#loadIfNeeded(name)`: import an archive, but skip the documents what belong to any existing index
  - `#unload(name)`: delete the indexes stored in an archive

CLI operations:
  - `./bin/es_archiver save <name> [index patterns...]`: save the mapping and documents in one or more indexes that match the wild-card patterns into an the `<name>` archive
  - `./bin/es_archiver load <name>`: load the mapping and documents from the `<name>` archive

* [functional_tests/common/nagivate] check for statusPage

* [es_archiver] move bins into new scripts dir

* [functional_tests/apps/context] use esArchiver

* [esArchiver] general improvements after showing to a few folks

 - remove auto-upgrading config doc logic (until we have better access to kibana version info)
 - export unload command
 - remove preemptive checks in favor of reacting to errors
 - use type "doc" vs "hit" for doc records (consistency)
 - wrote a bunch of pending tests to think though and plan

* [esArchiver] make log a stream that writes to itself

* [esArchiver] fill in stats and archive format tests

* [esArchiver] splitup action logic

* [esArchiver/cli] fix cli --help output and comment

* [esArchiver] remove type-based param coercion

* [esArchiver/log] use strings for log levels

* [esArchvier] remove unused var

* [esArchiver/indexDocRecordsStream] add tests

* [esArchive] fill in remaining tests

* [esArchiver] fix dem tests

* [eslint] remove unused vars

* [esArchiver/loadIfNeeded] fix call to load()

* [esArchiver] remove loadDumpData helpers
2017-03-27 15:29:14 -04:00
Spencer
d8d65526c6 [eslint] enable no undef (#10825)
* [codeshift] add proper ignore comments

* [codeshift] apply require-to-import transform

* [codeshift/fixup] remove duplicate imports

* [eslint] upgrade config for react "unused" support

* [codeshift] apply remove-unused-imports transform

* [codeshift] apply remove-unused-basic-requires transform

* [codeshift] apply remove-unused-function-arguments transform

* [lintroller] fix argument list spacing

* [codeshift] apply remove-unused-basic-bars transform

* [codeshift/fixup] fixup unused basic var removals

* manually apply remove-unused-assignments transform

* [codeshift] reapply remove-unused-imports transform

* [codeshift] reapply remove-unused-function-arguments transform

* [eslint] autofix param spacing

* manually fix remaining no-undef errors

* use more descriptive file ignore pattern

* add eslint-plugin-react peerDependency

* replace values that looked unused in tests

* remove // kibana-jscodeshift-no-babel comment

* remove import statements from code required by api tests

* Remove '// kibana-jscodeshift-ignore' comments

* address review feedback

* remove remnant of removed if condition
2017-03-22 07:08:23 -07:00
spalger
752c3339c2 [console] add functional tests to ensure that settings work 2016-09-22 08:48:34 -07:00
spalger
a2d37fca98 [pageObjects/console] update selectors to use test subjects 2016-09-12 17:15:21 -07:00
CJ Cenizal
dc51ad098f Migrate console functional tests to use PageObjects. 2016-06-27 15:57:58 -07:00
CJ Cenizal
0fb84e4696 Take screenshots of UI throughout functional tests. 2016-06-13 11:44:49 -07:00
spalger
f0c370209e [functional tests] move common.handleError to a higher level 2016-06-12 21:02:06 -07:00
spalger
ac0086341d [functional tests] remove extra IIFE wappers 2016-06-11 17:47:29 -07:00
LeeDr
988be91266 New dashboard tests using elasticdump 2016-05-26 16:32:53 -05:00
LeeDr
a49d765efc I think I'm back to master HEAD at this point. Still don't see the problem. 2016-05-20 09:34:06 -05:00
LeeDr
69fdfd8f99 Merge master 2016-05-17 13:23:48 -05:00
LeeDr
dda1703b5e Try without the last test 2016-05-17 10:35:09 -05:00
LeeDr
8fca1d8bb7 Changed to return on initial getEsHostPort. 2016-05-16 18:27:42 -05:00
LeeDr
d37573d5b4 Test to see if returning from the expects resolves the tryForTime's continuing after the tests finish. 2016-05-16 18:08:45 -05:00
Shaunak Kashyap
bc0d3921de
Don't try to set the ES URL via the UI 2016-05-10 03:25:00 -07:00
LeeDr
ee3119e678 A couple of simple console tests to make sure its there and works. 2016-05-04 13:00:37 -05:00