* [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
* Refactor sorting capabilities
* clean up and comments
* Move to ui_framework/services
- add tests
- address code review feedback
- Include new folders in build output.
* Rename to sortableProperties
Require initial sorted property name.
* fix a refactor miss
* 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.
* 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
* Integrate angular-translate globalization framework with i18n engine
* Provide template for enabling translations in an AngularJS view by translating a view
* Verification tool for translation keys used in angular-translate
* Documentation
* Moving front-end code out of devDependencies
* removing range specifier
* overriding ua-parser-js@0.7.12 to MIT
* upgrading react-color; upgrading react; upgrading pui-tooltip;
* [npm] upgrade babel
The upgrade to babel 6 requires an upgrade to all of the associated modules, which meant that a few other things changed at the same time. The most notable is the way that we handle our babel-options, which is now done with an npm module and includes using the babel-loader's "presets" query string param.
This meant changes to the babel_options.js module and extending it to help setting up the "babel-register" module, which was previously copy-pasted in several places.
* [mtodules] upgrade to support babel6 module semantics
* [eslint] fix lint errors
* [babel] ignoer massive fixture files
* [cli/errors] use Object.setPrototypeOf since subclassing Error is broken
* [babel] Upgrading core babel libraries
[babel] Use WIP babel-6-fix branch of babel-preset-kibana
* Fix broken test
* [babel] Reverse unnecessary module.exports changes
* Fix notifier
* Use babel presets and plugins directly
* [babel/options] resolve preset/plugins paths for better plugin compatibility
* [babel/options] use babel-preset-env for correct node settings
* [babel] cache babel compilation in webpack like we thought we were
Remove libsass as a dependency
libsass is platform specific, therefore we can not ship it as a dependency. Instead, we will commit the compiled CSS for the UI Framework to the repository. This is updated when running `npm run uiFramework:start` which also starts the docs site.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Adds support for Tribe nodes
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* @spalger review feedback
* Close create{Admin,Data}Cluster handles closing the connection
* Remove callAsKibanaUser argument from tests
* ClientLogger uses ES6 properties for tags and logQueries
* Ensure were destructuring cluster to access callAsKibanaUser
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Use class syntax on new data sources
* [tribe] Use includes instead of indexOf in call_client
* [tribe] DocRequest --> AbstractDocRequest
* [tribe] Fix AbstractDoc test rename
* Removes factory objects and adds addClientPlugin to Cluster (#9467)
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Resolves eslint error
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Use properties on the instance instead of class properties
Class properties are still in the very eary stages and not widely supported.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Remove disabled dev tools app, do not bundle console when tribe is enabled
* [tribe] Use destructuring, don't reassign args
* [tribe] Use class syntax for client request wrapper
* [tribe] callAsKibanaUser -> callWithInternalUser
* [tribe] Remove clients from module context, service is a singleton
* [tribe] Use instance property shorthand for admin and data DocRequests
* Removes questions
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Fixes typo in tests
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Correctly names test case
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Revert "Use properties on the instance instead of class properties"
This reverts commit ebd06ae591.
* Adds tests for create_{admin,data}_cluster
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Persists clusters to server
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Move cluster config requests to distinct getters
* Adds getClient and removes addClientPlugin
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Expose createClient, consolidate config parsing
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Removes createClients from Cluster
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Prevent status change from red to red
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Updates esvm:tribe ports to be consistant with dev
9200 is admin
9201:9202 are both data clusters
9203 is a tribe node connecting to both data clusters
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Get ssl.ca from serverConfig
* [tribe/esvm] Remove plugin configuration
* Removes unused variable
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Named exports for creating clusters
* [tribe] Named exports for client logger, cluster
* [tribe] Named exports for health check
* Remove invalid comment
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [tribe] Comment explaining difference between admin and data browser clients
* Rename ES checks to be consistant with functionality
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Organize NOOP functions
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Removing function comments
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Explicitly check for presence of url in tribe
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [uiFramework] include sass deps in production so we can rebuild
* [build] do not copy the doc_site source into the final build
* [licenses] allow code that uses the `Unlicense`
* upgrade eslint, all related deps, and config files
* replace gruntify-eslint with basic eslint-cli wrapper
* arrow-IIFEs must be invoked outside of the parens
* move import statements before their use
* reindent to satisfy new indentation check algorithm
* place missing semicolon
* ignore copy-pasted decode geohash code
* [grunt/eslint] fix argument spacing
* [gurnt/eslint] add comment about contents of report
* [grunt/tasks] use `export default`
The deepModules hacks in the build system were added to support the long
paths that resulted from npm2, but npm3 fundamentally addresses that
problem, so deepModules is no longer necessary. In practical terms, npm3
shouldn't ever cause path lengths to become so long that they trigger
path length problems on certain operating systems.
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.
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.
Currently, `npm start` and `npm run test:dev` use the same webpack "working directory". This allows them to share assets, which seems great, but when webpack writes it's record-keeping files to disk it can lead to difficult to debug "Property call of undefined is not a function" errors. By writing it's optimization output to a different directory we prevent those collisions so that both the test server and the dev server can be run side-by-side
We do not release zip archives for any operating system except windows,
and we do not release tar.gz archives for windows. For consistency and
clarity sake, we'll explicitly list the architecture (x86) of the
windows build as well.
These changes are necessary for Kibana to be compatible with Elastic's
unified release process from 5.0 onward. The way artifacts get created
has not changed, but the naming conventions have.