* [@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
* [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
* [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
* [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
* 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
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
```
* 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
* 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
* [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
* [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
* 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
* [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
* 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
* [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
* [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
* 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