Commit graph

92 commits

Author SHA1 Message Date
Spencer
48bfe7f1a9 Implement esTestCluster test util (#13099)
* [es/tests] remove unused module

* [testUtil/es] add utility for starting es nodes in tests

* [ftr/tests] use esTestCluster util to start es

* [es/tests/routes] use esTestCluster to start own es

* [testUtils/kbnServer] disable uiSettings unless plugins are enabled

* [testUtils/esTestCluster] use standard test es port by default

* [server/http/tests] add esTestCluster to setup

* [test/config] unify es test config into a single module

* [testUtils/esTestCluster] directory is no longer configurable

* [testUtils/esTestCluster] throw when es.start() is called again without es.stop()

* [testUtils/esTestCluster] is* checks should not mutate state

(cherry picked from commit 6748b22d03)
2017-07-28 12:37:10 -07:00
Tyler Smalley
3ef5e78354 Fixes path to the functional test runner (#12651)
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
2017-07-06 00:02:35 -07:00
Joe Fleming
262bcb411a Use es6 exports, replace module.exports (#12084)
* use es6 exports in fixtures

* use es6 exports in test_utils

* use es6 exports in src/ui

* use es6 exports in src/utils

* use es6 exports in src/server

* use es6 exports in timelion

* use es6 exports in core plugins, but not console

* use es6 exports in console

* use es6 exports in src/cli

* use eslint --fix for no-extra-semi rule

* selectively disable kibana-custom/no-default-export

* replace define() with exports

* clean up some object exports

in these cases, named exports are the better replacement

* use es6 exports in src/optimize, where possible

* fix uses of named exports

* fix some imports in console

* revert postcss optimizer to module.exports

* [timelion] put shared code in common directory

* fix url module export

don't export as default, rely on the named export

* convert define modules in src to export

* convert ui-bootstrap to cjs module

* lint webpackShims

no reason not to, they pass when the no-var rule is disabled

* fix new code not using es6 exports

* fix some straggling exports
2017-06-06 10:11:59 -07:00
Spencer
e5deca679c [IndexPatterns] Support cross cluster search (#11114)
* [indexPatterns] support cross cluster patterns

* [vis] remove unused `hasTimeField` param

* [indexPatterns/create] fix method name in view

* [indexPatterns/create] disallow expanding with ccs

* [indexPatterns/create] field fetching is cheaper, react faster

* [indexPatterns/resolveTimePattern/tests] increase readability

* [tests/apiIntegration/indexPatterns] test conflict field output

* [indexPatterns/fieldCaps/readFieldCapsResponse] add unit tests

* [test/apiIntegration] ensure random word will not be valid

* [indexPatterns/ui/client] remove unused import

* remove use of auto-release-sinon

* [indexPatterns/create] don't allow expand when cross cluster

* [indexPatternsApiClient/stub] use angular promises

* [indexPatterns/create] add tests for base create ui behaviors
2017-06-02 14:26:58 -07:00
Spencer
d3ba428796 [ftr] make room for more projects (#11848)
Squashed commit of the following:

commit 659ea986fdeb9a5ff2ca1fa5360cccb01c671ede
Author: spalger <spalger@users.noreply.github.com>
Date:   Wed May 17 09:19:22 2017 -0700

    [test/*/fixtures] rename es_archives to es_archiver

commit d3667457c78e88e2d6974f3c38dd0fe61b846b91
Author: spalger <spalger@users.noreply.github.com>
Date:   Wed May 17 08:22:03 2017 -0700

    [ftr/config] fix default directory value functions

commit 9a6a2cc0b295e2281e83da04fcea40e9d6f00781
Author: spalger <spalger@users.noreply.github.com>
Date:   Wed May 17 07:30:52 2017 -0700

    fix import paths

commit fcb65a877d54b5b1d36b8c81f1264b36845e826e
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 21:39:57 2017 -0700

    [grunt/ftr] use named exports for configs

commit 7d7f38c7615cdbf8eb0119efc0f2a5188bca8792
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 18:50:04 2017 -0700

    [test] remove unnecessary directory definitions

commit 0c28984669768482f0a2ee7fc2800d5bcaf49025
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 18:46:29 2017 -0700

    [ftr/config] make default directories relative to config path

commit cd2f33612624cacffec138797f3fc0f4ecb46cca
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 18:32:12 2017 -0700

    [test/common] put server config into common

commit 7851ed811a236576c63bd20850b3ef2099be2a4e
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 18:18:20 2017 -0700

    [grunt] "deprecate" test:api:runner task

commit b2ac4c26593a1947c94f0168191fe8123ff74122
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 18:15:41 2017 -0700

    [ftr] accept the project name as an unnamed arg

commit 47e292894fc70c0a04883403c50c5d2ae0738d76
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 17:56:34 2017 -0700

    [ftr/grunt] convert ftr task to multi-task with config

commit 83375855f88e5e7b3fa8b6a1c5d24a9f54766ce5
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 17:54:54 2017 -0700

    [test/functional] move fixtures into test/functional project

commit 05994e9c92cf134c58f831c285b3b522a801acbc
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 17:02:51 2017 -0700

    [src/test_utils] merge with test/utils directory

commit c77ee5ed36b8b7eadf876cb6d9482a49dfc92b66
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 16:53:00 2017 -0700

    [test/api_integration] migrate api tests to functional test runner

commit ca328c34648dd7e07f70e1844e07cfc392e41103
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 16:50:12 2017 -0700

    [esArchiver] refresh modified indices after load

commit cde74a540850fd97578f441d6dccaefd1444e656
Author: spalger <spalger@users.noreply.github.com>
Date:   Tue May 16 16:46:48 2017 -0700

    [test/functional] move shared services into test/common

commit 0ea2646aea5817f6d1595e6ae0d356c426f138f0
Author: spalger <spalger@users.noreply.github.com>
Date:   Mon May 15 22:51:23 2017 -0700

    [scripts/mocha] run _mocha script when debugging

commit 1cc80600d90e318d4738920aa557d124075a4570
Author: spalger <spalger@users.noreply.github.com>
Date:   Mon May 15 22:48:12 2017 -0700

    [ftr/config] allow child config files to have no testFiles config

commit 2bb6c957443b18cebc419baa6f9db301c8f4dc4f
Author: spalger <spalger@users.noreply.github.com>
Date:   Mon May 15 21:52:26 2017 -0700

    [ftr] move screenshots into test/functional
2017-05-17 18:53:45 -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
f76bef46c0 [ftr] remove digdug, use chromedriver directly (#11558)
* [ftr] remove digdug, use chromedriver directly

why?
 - digdug is meant to be used by intern, and expects a certain lifecycle that the FTR has tried and continuously fails to mimic
 - rather than continue trying to force digdug into the stack, just spawn chromedriver ourselves. We know how to handle it
 - cleans up verbose remote logging while we're in there, since selenium-standalone-server went with digdug, which was previously doing the verbose logging
 - deprecate config.servers.webdriver
 - add config.chromedriver.url
 - if url at config.chromedriver.url points to a server that responds to http requests use it as the chromedriver instance, enables running chrome in a VM or container
 - if pings to config.chromedriver.url fail a local chromedriver is started

* address review requests
2017-05-04 13:27:18 -07:00
archana
476031b4ea Run tests against an actual Kibana build (#11237)
* build before running selenium

* change directory into built snapshot

* WIP: what is in the build dir

* WIP: skip unit tests

* run selenium on build

* [functional tests on build] Derive version

* [functional tests on build] Missing folder name prefix

* WIP: debug on ubuntu VM

* WIP: double kibana stabilize timeout

* WIP: remove ubuntu VM debug change

* WIP: add logs for docParams

* WIP: add logs for es

* build release version without -SNAPSHOT-

* [functional test release] Cleanup
2017-04-21 11:08:36 -05: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
Kim Joar Bekkelund
90be7e882f Move Jest test setup to root (#10963) 2017-04-05 21:24:01 -04:00
CJ Cenizal
b604911720 [UI Framework] Create Button React components in UI Framework. (#10646)
* Create KuiButton, KuiLinkButton, KuiSubmitButton, and KuiButtonIcon React components in UI Framework.
* Add Jest test coverage for UI Framework, generate report in ui_framework/jest/report.
* Add UI Framework to linting task.
* Update UI Framework README with instructions on creating and testing React components.
* Add both React and HTML examples.
* Add UI Framework Jest tests to npm test script. Create separate scripts for watching and generating coverage reports.
* Fix appearance of kuiButtons with icons throughout Kibana, by adding a flexbox wrapper.
* Improve accessibility of kuiButtonIcon.
* Remove disabled attribute from KuiLinkButton.
* Remove kuiButton-isDisabled class from KuiButton and KuiSubmitButton.
2017-03-29 13:25:43 -07: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
CJ Cenizal
f0a8887f7b Update PageObjects for Visualize, Dashboard, and Discover to use data-test-subj selectors for menu items. (#9133)
* Update PageObjects for Visualize, Dashboard, and Discover to use data-test-subj selectors for menu items.

* Run checkPlugins task as part of test:ui:runner task.
2016-11-19 10:08:43 -08:00
CJ Cenizal
038a8340b8 Add checkPlugins task to check for plugins before running tests. (#8981) 2016-11-15 16:11:03 -08:00
Lee Drengenberg
8ed3b333b0 Port #8880 to master Support Cloud testing (#8915)
* Support Cloud Kibana UI testing master

* Add xpack file

* cherry-pick 9f63224e77
2016-11-01 10:44:12 -05:00
spalger
ea303935a1 [tests/functional] auto-rebuild assets in test:ui:server task
While working on some functional tests I had to re-run the `test:ui:server` task several times to rebuild the front-end assets. I'm not sure why that should be necessary, so this updates the server used in that specific task to auto-rebuild the assets.
2016-09-19 13:16:39 -07:00
spalger
88427e9a43 add test sharding
The tests in master are currently failing regularly because our current browser tests are serious memory hogs. Investigation reveals that nearly every test is retaining all of the memory it causes to be allocated. We have made some progress to being able to diagnose the problems, but we expect that problem to take some serious work to fix. We need a short-term solution though, and this is it.

Rather than modify the bundling process, we will shard the top-level test suites by name. For now, we've created 4 shards, but adding new shards is trivial if we need to.

Sharding is accomplished by creating a murmur3 hash of the top level suite names, then bucketing based on the hash output. If a test suite resolves to shard2, but we are running shard1, we simply never pass the function to `mocha.describe()`. Rather than redefine every describe statement, we have shimmed the global `window.describe()` function to accomplish this.
2016-09-02 10:38:29 -07:00
CJ Cenizal
37f82f146f Create visual_regression test suite.
- Add test:visualRegression npm script.
- Split up test:visualRegression grunt task into takeScreenshots and buildGallery subtasks.
- Add intern_visual_regression.js test file.
- Rename api_itern.js -> intern_api.js for consistency.
- Refactor delayed exports logic for readability.
- Refactor common.js page object to use ES2015 Class.
2016-06-21 20:50:55 -07:00
CJ Cenizal
ca9b085ef0 Remove test:visualRegression from test npm script.
- Add it to end of test grunt task.
2016-06-21 11:23:40 -07:00
LeeDr
bfcb875c77 Merge master 2016-06-15 11:29:23 -05:00
CJ Cenizal
9e353fd451 Add visual regression screenshot gallery.
- Add 'test:visualRegression' grunt task.
- Run 'test:visualRegression' as part of npm script 'test'.
- Add 'clean:screenshots task'.
- Clean screenshots/session when funtional tests are run.
2016-06-14 08:33:45 -07:00
LeeDr
01255ee4d4 Re-implement most of PR #7024 switch to Chrome browser 2016-06-13 16:03:40 -05:00
Rashid Khan
412b711a19 Add the license check back 2016-05-02 09:55:55 -07:00
Matthew Bargar
c5565d72c6 Give API tests their own intern config
Adding a 'suites' property to the existing intern configuration caused
an error to be thrown at the beginning of the functional test run. Even
if the value of 'suites' was just an empty array. The existence of the
property seemed to enabled execution of the config file in the selenium
browser because it complained about not having the node require
function. To fix this, I created a separate api test config file without
the node require and removed the 'suites' property from intern.js.
2015-12-29 13:37:50 -05:00
Matthew Bargar
e6100c2f4e First API test 2015-12-29 13:37:50 -05:00
LeeDr
ab7fc81f90 Manually revert the test task change.
Fixes #5750
2015-12-22 16:45:06 +00:00
LeeDr
b5897c2c3a Revert "Revert "Rename test:ui to test:browser so will run on Jenkins.""
This reverts commit b7935865dc.

Fixes #5750
2015-12-22 16:45:06 +00:00
LeeDr
0a67efb52b Revert "Rename test:ui to test:browser so will run on Jenkins."
This reverts commit 5d9d695268.

Fixes #5750
2015-12-22 16:45:06 +00:00
LeeDr
4f5b641580 Rename test:ui to test:browser so will run on Jenkins.
Fixes #5750
2015-12-22 16:45:06 +00:00
Jonathan Budzenski
db8f7cdf22 [functional testing] Load scenarios 2015-10-14 15:33:25 -05:00
Jonathan Budzenski
bb85a6c244 Merge branch 'master' into functional-testing 2015-09-18 09:09:14 -05:00
Jonathan Budzenski
f611c44af4 [functional testing] Cleanup before going to next task 2015-09-17 11:23:32 -05:00
Jonathan Budzenski
ca81d4b777 [functional testing] Use grunt-run with selenium 2015-09-15 16:26:04 -05:00
Jonathan Budzenski
49c856712c [functional testing] Add dev mode 2015-09-11 14:08:35 -05:00
Matt Bargar
f9f0a9f163 give the test config its own esvm directory that it can purge as much as it likes 2015-09-10 19:44:56 -04:00
Matt Bargar
03e109f753 Use esvm to start and stop elasticsearch for all tests that need it 2015-09-10 14:57:54 -04:00
Jonathan Budzenski
d6c9019be5 [functional testing] Cleanup, run from npm test 2015-09-09 14:57:51 -05:00
Jonathan Budzenski
71dd15ca22 [functional testing] Load webdriver 2015-09-04 14:11:28 -05:00
Jonathan Budzenski
83a582cdbe [functional testing] Load fixtures 2015-09-03 13:39:26 -05:00
Jonathan Budzenski
76d60aec9e [functional testing] Start new instance of kibana 2015-09-02 14:56:07 -05:00
Jonathan Budzenski
0d53f5ee13 [functional testing] Start new instance of es 2015-09-02 14:55:41 -05:00
Jonathan Budzenski
7b8374b7c8 Add intern task to grunt and associated npm script 2015-09-02 14:07:20 -05:00
Joe Fleming
2e3ba07774 generate the test coverage 2015-08-24 17:10:21 -07:00
spalger
349ba49b95 [grunt/test] just use test:quick rather than relisting it 2015-08-19 13:13:16 -07:00
spalger
e5390a66f0 [karma] move config into grunt task for client.mocha support 2015-08-18 15:36:00 -07:00
spalger
94b1de68a3 [grunt] broke test task into chunks, linked from package.json 2015-08-18 14:51:31 -07:00
spalger
38ff67b019 [grunt test] always start a new server for the tests, added test:dev task 2015-08-18 13:32:44 -07:00
spalger
2f416a5ad2 simplify elasticsearch proxy creation to prevent a bug that creates a .kibana type 2015-08-12 17:26:07 -07:00
spalger
cd5b6656aa fixed the test bundling 2015-08-07 11:49:56 -07:00
spalger
e977e642d5 switch from eslint cli to gruntify-eslint 2015-08-03 09:35:31 -07:00