* Update moment related packages
* unify moment version in yarn.lock
* adapt ro pluralization fixes
* update some bad pluralization in fixtures/snapshots
* [npm] Removes react-clipboard.js
Added in the original commit of APM, but does not appear to still be used.
* [npm] Remove redux-test-utils
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
Originally added in https://github.com/elastic/kibana/pull/19236 as part
of the notification service, however it's no longer used.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* [npm] Remove babel-plugin-mock-imports
Originally added as part of
https://github.com/elastic/kibana/pull/22695, however, it doesn't appear
to have ever actually been used.
* [npm] Removes gulp-multi-process
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
Originally added in https://github.com/elastic/kibana/pull/6791 as part
of custom notification banners, however it's no longer used.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
Added when X-Pack was closed-source and
import/no-extraneous-dependencies was implemented. Does not appear to
still be used.
Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
* Update dependency del to v5
* unify del/rimraf usage with del v5
* update yarn.lock
* update kbn-pm distributable
* remove poorly transformed code
* force some deletes from tmp
* mock less of the fs module
* force tmp deletion in a few more suites
* please make this the last force
* Update eslint related packages
* add errorMessage to no-restricted-paths validation
* add license to eslintrc file
* ignore broken plugin fixture
* upgrade tangled peer deps
* give name to unnamed func to avoid typescript-eslint/typescript-eslint#1078
* migrate away from removed prefer-interface
* migrate away from removed no-angle-bracket-type-assertions rule
* migrate away from removed no-triple-slash-reference rule
* old config was invalid and made this rule a noop
* fix array-type rule config
* fix readonly paramProperties that weren't being checked
* fix propType ordering
* remove references to non-existent rules
* remove unnecessary disable that is improperly formatted
* fix comment-related spacing
* fix typo/invalid namespace overrides
* rename fn to avoid hook-alike behavior
* remove reference to old removed rule
* use caret version for prettier
* reference babel-eslint with absolute path
This removes the outdated and unused 0.x version of `constate` and instead depends on a recent version. It also removes the aliasing to `constate-latest`.
closes#48606
* Add file parse chunking, update component on progress
* Clean up clean and validate and redo to process single features
* Add oboe dependency
* Prevent state updates on cancel
* Handle new files added mid-way through parsing another file
* Fix issue where subsequent index name is wiped out when previous file cancelled
* Remove unneeded oboe abort logic
* Dice parsing logic up further for testing
* Clean up
* Revert "Fix issue where subsequent index name is wiped out when previous file cancelled" (covered in separate PR)
This reverts commit 0688e73ffc.
* Update file parse test to focus on different stream states
* Update clean and validate tests to reflect function input/output changes
* Bump up file buffer. Simplify ui update logic, not neceesary to throttle with less frequent callbacks
* Show features parsed on UI rather than percentage
* Remove extra mock reset
* Review feedback. Add localized feature tracking callback
* Review feedback. Add comment explaining progress update throttling. Also, use debounce to throttle
* Remove console log
* Consolidate feature handling into one function passed to oboeStream node
* Abstract oboe logic to separate class and import for use in file parser
* Update file parser test to mock PatternReader import
* Prevent file parse active flag from resetting if another file is in progress
* Don't pass back result if no features found on complete, throw error with feedback. Add clean-up for prev PatternReader
* Use singleton version of jsts reader & writer. Pass back unmodified feature if clean returns nothing
* Make fileHandler function async
* Return null if no geometry
* Handle single features differently. Fixes functional test error
* Update jest test to use unique instances & counts of readers
* Review feedback
* Review feedback
* Review feedback. Add error-handling for null geom
* Fix i18n error
* Clean up handling of cancelled/replaced files to account for changed fileHandler return type
* [Code] use native git to iterate git files
* [Code] use native git to clone/update repository
* [Code] git history using native git
* [Code] use native git to read file tree and file content
* [Code] fix the 'bad file' warning from status api
* [Code] use native git to handle worktree
* [Code] use native git to resolve references
* [Code] use native git to handle blame / diff
* [Code] patch git binaries in kibana build script
* [Code] migrate unit tests to use native git
* get coverage for console functional test
* instrument kibana
* collect coverage stats after each test, on url navigation, refresh and back
* switch to babel-plugin-istanbul
* switch to babel-plugin-istanbul
* [coverage service] basic version
* trigger final coverage flush when ftr finishes, wait for all logs before exiting
* add coverage report generation
* increase optimizer timeout, re-run idx/babel plugin before istanbul
* increase memory usage for node
* put istanbul preset in the beginning to run as the last one
* bump babel-plugin-istanbul up to 5.2.0
* cleanup
* save unique json files with coverage
* [functional test coverage] update coverage.json path
* run code coverage on CI
* increase max-old-space-size with env variable
* fix coverage folder creation
* use env variable to configure code coverage
* revert ci config changes
* remove duplicate plugin
* remove comments
* fixes
* refactor failed_tests_reporter to use TS, no octokit
* update renovate config
* ensure that all kbn-test files are in ts project
* fix some type errors
* add some more tests
* [kbn-test/githubapi] cleanup and document
* collect log messages as strings instead of message objects
* ensure issue is open when updating body
* improve readability of getKibanaIssues
* expose axios helpers from dev-utils
* fix request params for fetching github issues and validate locally
* include a README for failed_tests_reporter
* improve axios error helpers
Add service map tabs on the main APM screen and for individual services.
This is not yet hooked up to work with back-end data, so it always shows the same hard-coded graph.
This is experimental, so you must have x-pack.apm.serviceMapEnabled: true in your Kibana config for it to show up.
Also add "PSF" to the list of allowed licenses since a new dependency added uses this license (it's on the [green list](https://github.com/elastic/open-source/blob/master/elastic-product-policy.md#green-list).)
Fixes#44890Fixes#44853
* Add option for Internet Explorer IE11
* WIP trying to figure out IE options/capabilities
* more attempts to get IE tests working
* more work, but still can't set font size in Dev Tools Console
* two changes for IE
* revert skip in console test
* this change *appears* to set absolute times but they don't stick
* Shakespeare passing on all 3 browsers
* add config.ie.js, change 'internet explorer' to 'ie'
* increase notifications:lifetime so ew have a chance to see the message
* fix lint error remove unused Options
* updates from PR review, remove console.log
* cleanup + reuse existing code
* make iedriver path work for x-pack tests
* try to avoid changing notification timeout
* resolve path and add correct delimiter
* remove unused code, make timepicker work on IE11
* work-around 45333 for IE11
* [WIP] removing some work-arounds
* revert work-arounds
* cleanup
* remove debugging code
* remove debugging code
* removed unused code
* reverting 2 files that didn't have any material changes
* adds linter rule to disallow undeclared variables
* adds cypress eslint plugin, remove redundant packages from siem/package.json
* removes comment from json and adds a line about cypress linting to the cypress README
* adds upgraded package back to siem/package.json
* updates cypress run scripts since cypress package is now located in the x-pack/node_modules
* needed to yarn kbn bootstrap after rebasing with master
* use new setScreenshotSize
* change tolerance from 1% to 2% (originally 5%)
* retake baseline without notification dialog
* close add and save notifications
* wait for render complete when going in to FullScreen mode
* add 5 second sleep to see if it ever goes to full screen mode
* add debugging screenshots and sleeps
* try reloading the Kibana index before this test
* 30 iterations with only the first test enabled
* revert multi-run changes
* ran node scripts/build_renovate_config
* fix tslint errors
* fix tslint error
* update xpack dependency to match oss
* update yarn.lock
* revert notifications:lifetime:info change by reducing some other timeouts
* remove commented-out code
* fixed and Unskipped 2nd test
* re-arrange order of dashboard tests to pass :-(
* removed commented-out sleep
Hopefully this won't be an issue
* Add comment about the order of tests
```
loadTestFile(require.resolve('./view_edit'));
// Order of test suites *shouldn't* be important but there's a bug for the view_edit test above
// https://github.com/elastic/kibana/issues/46752
// The dashboard_snapshot test below requires the timestamped URL which breaks the view_edit test.
// If we don't use the timestamp in the URL, the colors in the charts will be different.
loadTestFile(require.resolve('./dashboard_snapshots'));
```
* Revert "Updating load-grunt-config to ^3.0.1 (#46408)"
This reverts commit 2733c093e0.
* adapt changes from #46408 to not invalidate yarn state on re-installs
* Update angular related packages
* upgrade jQuery too
* don't delete screenshots in pipeline jobs
* use ng-change so that listener is triggered after ng-model is updated
* match @types/angular versions
* update yarn.lock
* fix test
$routeChangeSuccess is no longer broadcast when resolving a redirect route, so this test has been adjusted to validate that
* Update jest related packages
* use correct type
* adapt spy and describe.each types
* update yarn.lock
* update snapshot
* define types before passing to describe.each
* Add core-only bundle
* Add ApplicationService mounting
* Add LegacyCore{Setup,Start}
* Fix PR comments
* Add functional tests
* Fix PR comments
* Fix PR comments
* Remove other usages of rootRoute
* Use state field notation
* Add support for open in new tab
* Fix PR comments
* Fix pesky await from the dead
* Update docs
* Bump @types/history
* [APM] Adds chart for page load averages by country in RUM page-load view
* [APM] Simplified and refined ChoroplethMap. Added legend labels.
* - Replaced Map legend slices with smooth gradient
- fixed issue with map rendering multiple times
- renamed initial props to start with 'initial'
- added some more code comments
* use correct i18n ids
* - base color progression calc directly on euiColorPrimary
- check that a layer exists before querying features
* Addressed code review feedback
* - fixes issue where min/max was not a finite value
- cleans up mouseover handler, which updates on state changes
- formats doc count for display
- style improvements
* addressed PR feedback & updated renovate.json5
* - Removed the Legend from the ChoroplethMap
- Only render tooltip when there's data
* - fix hover state not clearing properly
- add better typing around Geojson propertier for world countries
* added missing css import
* wip
* sources table working woohoo
* rename table back to n flow
* wired up both source and destination tables
* cleanups
* flows and ips sort
* flows and ips sort
* fix flow sorting
* differentiate tables
* bring back network
* fix tests
* integration tests updated
* add country names to flags, sort by desc on first click
* yarn doing its thing
* correct panel width during initial load
* remove default props
* fix inspect btn placement at small viewport sizes
* reformatting bytes
* used compressed table prop
* fix unit tests bytes
* update header subtext size
* override table cell display flex
* make titles plural
* less distracting empty string
* simplify markup and align numbers right
* improve more items experience
* undo compressed tables…looks bad
* stack tables
* restore compressed and side by side layout
* sentence case for titles
* table cleanup
* force more to separate line
* dnd poc changes
* jest test updates
* TypeScript, i18n, and bean-gen fixes
* fix for filter action color
* single quotes instead of backticks
* use getEmptyValue() instead of static emdash
* remove “ AS” prefix
* address PR concerns
* add space
* first attempt at prop change with matchMedia
* split table display by mediaMatch
* rm comments
* fix type issue
* correct react hook
* lint fix
* fix jest
* update snapshots
* WIP: Adding libs for webgl
* WIP Adding swiftshader libs to chromium
* WIP: Adding missing binaries for webgl in chromium
* Use pipes for communication with chrome to avoid networking snafus
* Bumps puppeteer in prep for new chromium build + types and better @types package
* Remove ignore
* Removing of final @ts-ignore now that we have types
* README updates
* Fixing binding issues
* Fixing maps integration wrt reporting + conditional pipes for puppeteer
* Adding new deps to the windows build
* New s3 builds
* Checksums for updated linux build
* Moving types out of puppeteer file and into core puppeteer module
* launch => puppeteerLaunch
* Maps comment about render loading in reporting
* Clarify how reporting uses hooks and events for viz
* First version of Editor component and integration with the expression editor
* Adding resize detector
* Remove blue border on editor select
* Adding types for the react resize detector
* Adding worker and a few more monaco plugins
* Suggestion completion rework
* Add resize detector types as well as an IE11 full width bug fix
* Adding correct types for function definitions and monaco
* change CSS class names, add border to input
* Adding boolean styling
* Slight refactor of canvas function/arg types and adding first pass of hover
* Fixing hover interaction for functions and arguments
* Namespacing Code monaco css overrides
* Styling cleanup and simple README
* Setting up tests including some storyshots for the ExpressionInput component and Editor component
* Prop documentation for both the ExpressionInput and Editor components
* Adding Editor snapshots
* tiny cleanup
* Moving language registration, adding autocomplete suggestion types, and cleaning up editor
* Some documentation and cleanup from PR feedback
* Fixing types, adding documentation
* clean up editor, remove autocomplete toggle
* More PR cleanup
* Test fix, type fix
* fix issues around errors. code cleanup
- Updates the dragSelect library to 1.13.1. 9221622 updates the library. c9a870b fixes a regression caused by the update.
- Fixes an issue where a timefilter refresh would clear a swimlane selection. 3d1c43d removes a duplicate timefilter subscription and changes the triggered event to REDRAW instead of RELOAD (which triggered a full reload and cleared the selection).
- Fixes an issue with timefilter/datepicker: EuiSuperDatePicker checks isPaused only with componentDidMount() so it might miss changing props. The fix in aa9555d works around that by adding a check on the onRefresh() callback.
* [mocha] fix test selectors to get everything in packages
* fix paths in tests
* ignore test files that make it into target directories
* [@kbn/test] don't build test files
* move tests from datemath and test-subj pkgs into __tests__ dirs
* [kbn/test-subj] remove test script
* update yarn.lock
* upgrade all babel related modules, and bump lodash minors
* update kbn-pm dist
* update fetch-mock, necessary to use core-js 3
* use regenerator transform in jest tests, as required by EUI
* disable useBuiltIns rather than using regenerator plugin
* remove extra regenerator-runtime import
# [SIEM] Run Cypress Tests Against Elastic Cloud & Cypress Command Line / Reporting (#42804)
This PR contains enhancements to the `Cypress` end-to-end (e2e) testing support in the SIEM app, as discussed with @spalger
Note: this PR depends on test refactorings in https://github.com/elastic/kibana/pull/42766
## New: Run `Cypress` Tests Against Elastic Cloud
Cypress tests may now be run against a remote Elastic Cloud instance
(override `baseUrl`), interactively or via the command line.
Credentials are specified via `kibna.dev.yml` or environment variables.
## New: Run `Cypress` Tests On the Command Line
Run tests on the command line (override `baseUrl` and pass credentials via
the `CYPRESS_ELASTICSEARCH_USERNAME` and `CYPRESS_ELASTICSEARCH_PASSWORD`
environment variables), via command line.
## New: Reporting
Reports are configured to include:
- An HTML report, suitable for e-mail notifications
- Screenshots
- Junit reports (for integration with Kibana CI)
- Videos (optional)
Reports generated when `Cypress` tests are run on the command line are output
to the `target` directory, which follows specific conventions used by the
Kibana CI process:
* Any directory under `target` that begins with `kibana-`, e.g. `kibana-siem` will be uploaded as an artifact to a bucket
* Junit reports are picked up from the `target/junit` directory
The artifacts generated by running `Cypress` tests on the command line conform to the above conventions.
### HTML Reports
An HTML report (e.g. for email notifications) is output to:
```
target/kibana-siem/cypress/results/output.html
```
### Screenshots
Screenshots of failed tests are output to:
```
target/kibana-siem/cypress/screenshots
```
### `junit` Reports
The Kibana CI process reports `junit` test results from the `target/junit` directory.
Cypress `junit` reports are generated in `target/kibana-siem/cypress/results`
and copied to the `target/junit` directory.
### Videos (optional)
Videos are disabled by default, but can optionally be enabled by setting the
`CYPRESS_video=true` environment variable:
```
CYPRESS_video=true yarn cypress:run
```
Videos are (optionally) output to:
```
target/kibana-siem/cypress/videos
```
# Updated `README`
The full details and instructions for running Cypress tests are in the
`siem/cypress/README.md`, which was updated to reflect the changes
in this in this PR, but in a nutshell, you may run tests interactively with
the following (new) environment variables:
```sh
cd x-pack/legacy/plugins/siem
CYPRESS_baseUrl=http://localhost:5601 CYPRESS_ELASTICSEARCH_USERNAME=elastic CYPRESS_ELASTICSEARCH_PASSWORD=<password> yarn cypress:open
```
Running the command line version of the tests, which will output
the reports described above, is a similar experence:
```sh
cd x-pack/legacy/plugins/siem
CYPRESS_baseUrl=http://localhost:5601 CYPRESS_ELASTICSEARCH_USERNAME=elastic CYPRESS_ELASTICSEARCH_PASSWORD=<password> yarn cypress:run
```
https://github.com/elastic/siem-team/issues/435https://github.com/elastic/siem-team/issues/437
* Upgraded EUI 13.0.0 -> 13.1.0
* Bump to 13.1.1
* Reset MutationObserver polyfill to original operation
* Reset x-pack's MutationObserver polyfill to original operation
* EUIficate pie chart options tab
* Fix tests
* Size titles down to xs
* Use FormattedMessage
* EUIficate tag_cloud_vis options tab
* Get rid of ticks in the range
* Update snapshots
* Fix comments
* Change label
* Create a components folder
* Create default_editor_agg.tsx
* Create default_editor_agg_group
* Apply drag and drop
* Remove unused dragula dependency
* Remove old mocha tests
* Add ts for state
* Update functional tests
* Update touched condition
* Apply styles for accordion button content
* Apply truncate for agg description
* Remove unused styles
* Separate common props
* Move aggGroupNamesMap to agg_group.js
* Update _sidebar.scss
* Pass schemas prop
* Prevent scroll bar and add space
* Remove unused min from stats
* Add OnAggParamsChange type
* Show error as an icon
* Update background color
* Update title size
* Remove Schema.deprecate since it's not used
* eui 12.4.0
* styled-components ts conflict
* update combobox test service to always open on open call
* Revert "update combobox test service to always open on open call"
This reverts commit 43074e6006.
* scroll combobox into view
* scroll before filter
* eui 12.3.1
* add data logos
* Fix TS uses, one SCSS use of euiOverflowShadow
* fix overflow shadow mixin in sass
* homepage logos
* refix typo on homepage
* hp snaps
* Addresses an issue where Chromium user-data-dirs aren't cleaned properly, and moves to TS
* Fixing renovate config issues
* Fixing issues with typedef's missing
* Using prior-set typedefs for logger
* Updating to @elastic/lodash to 3.10.1-npm-kibana2
* Updating lodash to 4.17.13
There's a stray dependency to lodash 4.17.11 via cypress which doesn't
use "^". This is a dev dependency, so we can ignore it for a bit while
they update their package.json
* Updating some forgotten references to @elastic/lodash@3.10.1-kibana1
* Updating lodash-es to 4.17.13
* Updating to @elastic/lodash to 3.10.1-npm-kibana3
* Using the root resolutions to update cypress's version of lodash.
Thanks @spalger!!!
* [ts] upgrade to 3.5.2
* [ts] run from cwd so that relative paths are correct
* move eslint-disable-line comment into jsx attribute
* autofix eslint violations
* avoid generic type, it's not necessary and problematic
* make elasticsearch.cluster optional, many instances don't have them
* remove invalid prop
* expand AllowUnknownProperties to cleanly handle arrays
* esfilter values can sometimes be an array of strings
* allow exception objects to have unknown properties
* define accumulator as a boolean
* fix return type
* return a 404 if beat isn't found after update
* use Object.values for better types
* define return type of get() call
* define value type for Set
* define return value of get()
* define State property type
* use less get(), so ts can infer types
* define Set item type
* map state type
* make default_operator optional, since it's not always defined
* remove seemingly unused prop
* define return type of get() fn
* define inner type for state
* don't define base types are objects with index signatues
* regenerate public api docs
* make indices privileges optional too
* remove unnecessary index-signature from Exception interface
* use variadic _arg instead
* [core/plugin] use Record<string, any> rather than {}
* replace a couple more instances of {}
* revert some unnecessary changes
* remove unused types
* [reporting] output, payload, and meta are required properties
* bump to latest patch version
* Add ctags langserver as a dependency and launch it
* Remove extra files in node-ctags when release
* [build] rework platform-specific clean for ctag package
* rename local excludedPath var
* use array.includes
* exclude ctags langserver vendor
# Cypress Tests
The `siem/cypress` directory contains end to end tests (specific to the `SIEM` app) that execute via [Cypress](https://www.cypress.io/).
At present, these tests are only executed in a local development environment; they are **not** integrated in the Kibana CI infrastructure, and therefore do **not** run automatically when you submit a PR.
See the `Server and Authentication Requirements` section below for additional details.
## Organizing Tests and (Mock) Data
- Code and CSS selectors that may be re-used across tests should be added to `siem/cypress/integration/lib`, as described below
- Smoke Tests are located in `siem/cypress/integration/smoke_tests`
- Mocked responses from the server are located in `siem/cypress/fixtures`
### `cypress/integration/lib`
The `cypress/integration/lib` folder contains code intended to be re-used across many different tests.
- Files named `helpers.ts` (e.g. `siem/cypress/integration/lib/login/helpers.ts`) contain functions (e.g. `login`) that may be imported and invoked from multiple tests.
- Files named `selectors.ts` export CSS selectors for re-use. For example, `siem/cypress/integration/lib/login/selectors.ts` exports the following selector that matches the Username text area in the Kibana login page:
```
export const USERNAME = '[data-test-subj="loginUsername"]';
```
## Server and Authentication Requirements
The current version of the Smoke Tests require running a local Kibana server that connects to an instance of `elasticsearch`. A file named `config/kibana.dev.yml` like the example below is required to run the tests:
```yaml
elasticsearch:
username: 'elastic'
password: '<password>'
hosts: ['https://<server>:9200']
```
The `username` and `password` from `config/kibana.dev.yml` will be read by the `login` test helper function when tests authenticate with Kibana.
See the `Running Tests Interactively` section for details.
## Running Tests Interactively
To run tests in interactively via the Cypress test runner:
1. Create and configure a `config/kibana.dev.yml`, as described in the `Server and Authentication Requirements` section above.
2. Start a local instance of the Kibana development server:
```
yarn start --no-base-path
```
3. Launch the Cypress interactive test runner:
```sh
cd x-pack/legacy/plugins/siem
yarn cypress:open
```
4. Click the `Run all specs` button in the Cypress test runner
![cypress](https://user-images.githubusercontent.com/4459398/60113545-39c54f00-972f-11e9-9c0c-5d28aecdf212.gif)
https://github.com/elastic/ingest-dev/issues/515
* chore(NA): first efforts to enable cache-loader relative paths and disable babel-register cache. chore(NA): allow to use cache-loader results everywhere as a persistent cache.
* chore(NA): last change to support cache loader across envs.
* fix(NA): cache-loader config generator function scope.
* refact(NA): static cache config for dll compiler.
* chore(NA): support for force writable cache flag. use built assets for cache on distributable.
* chore(NA): update cache-loader to last version. fix(NA): logic bug with force writable cache flag.
* chore(NA): move optimize cache to built_assets.
* chore(NA): relative paths for sourcemap configurations.
* chore(NA): remove redudant check for process.env var.
* refact(NA): simplify double negated expression.
* chore(NA): remove webpack prefix from devtoolModuleFilenameTemplate.
* chore(NA): rename cache write force flag to KBN_CACHE_LOADER_WRITABLE.
* chore(NA): readd babel register cache.
* chore(NA): change .cache to .ui_bundles_cache
* chore(NA): change .ui_bundles_cache to cache/ui_bundles
* chore(NA): update gitignore with .babel_register_cache.json
* chore(NA): rollback devtool module filename template to asbolute resource path.
* chore(NA): apply cache-loader patch.
* chore(NA): added new version definition for cache-loader package.
* chore(NA): updated yarn lock with new cache-loader version
* window.crypto.subtle cannot be used in insecure env
* set extension. otherwise definition prioritiezed over js file
* move js to ts. fix build
* remove polyfills
* remove ext
* remove crypto from legacy
* Add rendering of canvas images and update percy agent package
* Spencer's fix for eslint issues
* restore canvas elements after taking snapshot
* copy over all styles from canvas to image stand-in
* percy snapshots only run in chrome, so they can use modern js features
* only run visual regression suites
* add stub maps test
* fix arg order
* use more modern syntax that totally works in chrome
* typo
* fix ftr test timeout when using --inspect-brk
* Revert "add stub maps test"
This reverts commit 32dc965adb.