Skip to content

Commit

Permalink
Backport elastic#167428
Browse files Browse the repository at this point in the history
  • Loading branch information
Ikuni17 committed Sep 28, 2023
1 parent c5193b3 commit 0544223
Show file tree
Hide file tree
Showing 12 changed files with 33 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ import path from 'path';
import { safeLoad as loadYaml } from 'js-yaml';
import { readFileSync } from 'fs';

import type { YamlRoleDefinitions } from '../../test_serverless/shared/lib';
// eslint-disable-next-line @kbn/imports/no_boundary_crossing
import { setupUserDataLoader } from '../../test_serverless/functional/test_suites/security/cypress/support/setup_data_loader_tasks';
import type { YamlRoleDefinitions } from '../../../test_serverless/shared/lib';
import { setupUserDataLoader } from '../../../test_serverless/functional/test_suites/security/cypress/support/setup_data_loader_tasks';
const ROLES_YAML_FILE_PATH = path.join(
`${__dirname}/cypress/support`,
`${__dirname}/support`,
'project_controller_osquery_roles.yml'
);
const roleDefinitions = loadYaml(readFileSync(ROLES_YAML_FILE_PATH, 'utf8')) as YamlRoleDefinitions;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ describe('ALL - Add Integration', { tags: [tag.ESS, tag.BROKEN_IN_SERVERLESS] },

// test list of prebuilt queries
navigateTo('/app/osquery/saved_queries');
cy.waitForReact();
cy.react('EuiTableRow').should('have.length.above', 5);
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -545,8 +545,6 @@ describe('Packs - Create and Edit', () => {

recurse<string>(
() => {
cy.waitForReact();

cy.getBySel('docsLoading').should('exist');
cy.getBySel('docsLoading').should('not.exist');

Expand Down
4 changes: 0 additions & 4 deletions x-pack/plugins/osquery/cypress/e2e/roles/reader.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ describe('Reader - only READ', { tags: [tag.ESS] }, () => {

it('should not be able to add nor run saved queries', () => {
navigateTo('/app/osquery/saved_queries');
cy.waitForReact(1000);
cy.contains(savedQueryName);
cy.contains('Add saved query').should('be.disabled');
cy.react('PlayButtonComponent', {
Expand All @@ -71,13 +70,11 @@ describe('Reader - only READ', { tags: [tag.ESS] }, () => {

it('should not be able to enter live queries with just read and no run saved queries', () => {
navigateTo('/app/osquery/live_queries/new');
cy.waitForReact(1000);
cy.contains('Permission denied');
});

it('should not be able to play in live queries history', () => {
navigateTo('/app/osquery/live_queries');
cy.waitForReact(1000);
cy.contains('New live query').should('be.disabled');
cy.contains(liveQueryQuery);
cy.react('EuiIconPlay', { options: { timeout: 3000 } }).should('not.exist');
Expand All @@ -86,7 +83,6 @@ describe('Reader - only READ', { tags: [tag.ESS] }, () => {

it('should not be able to add nor edit packs', () => {
navigateTo('/app/osquery/packs');
cy.waitForReact(1000);
cy.contains('Add pack').should('be.disabled');
cy.getBySel('tablePaginationPopoverButton').click();
cy.getBySel('tablePagination-50-rows').click();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ describe(`T1 and T2 analysts`, { tags: [tag.ESS, tag.SERVERLESS] }, () => {

it('should be able to run saved queries but not add new ones', () => {
navigateTo('/app/osquery/saved_queries');
cy.waitForReact(1000);
cy.contains(savedQueryName);
cy.contains('Add saved query').should('be.disabled');
cy.react('PlayButtonComponent', {
Expand All @@ -80,7 +79,6 @@ describe(`T1 and T2 analysts`, { tags: [tag.ESS, tag.SERVERLESS] }, () => {

it('should be able to play in live queries history', () => {
navigateTo('/app/osquery/live_queries');
cy.waitForReact(1000);
cy.contains('New live query').should('not.be.disabled');
cy.contains(liveQueryQuery);
cy.wait(1000);
Expand All @@ -92,7 +90,6 @@ describe(`T1 and T2 analysts`, { tags: [tag.ESS, tag.SERVERLESS] }, () => {

it('should be able to use saved query in a new query', () => {
navigateTo('/app/osquery/live_queries');
cy.waitForReact(1000);
cy.contains('New live query').should('not.be.disabled').click();
selectAllAgents();
getSavedQueriesDropdown().type(`${savedQueryName}{downArrow} {enter}`);
Expand All @@ -103,7 +100,6 @@ describe(`T1 and T2 analysts`, { tags: [tag.ESS, tag.SERVERLESS] }, () => {

it('should not be able to add nor edit packs', () => {
navigateTo('/app/osquery/packs');
cy.waitForReact(1000);
cy.getBySel('tablePaginationPopoverButton').click();
cy.getBySel('tablePagination-50-rows').click();
cy.contains('Add pack').should('be.disabled');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
*/

import { defineCypressConfig } from '@kbn/cypress-config';
// eslint-disable-next-line @kbn/imports/no_boundary_crossing
import { setupUserDataLoader } from '../../test_serverless/functional/test_suites/security/cypress/support/setup_data_loader_tasks';
import { setupUserDataLoader } from '../../../test_serverless/functional/test_suites/security/cypress/support/setup_data_loader_tasks';

// eslint-disable-next-line import/no-default-export
export default defineCypressConfig({
Expand Down
9 changes: 5 additions & 4 deletions x-pack/plugins/osquery/cypress/support/e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,18 @@
// ***********************************************************

// force ESM in this module
import type { SecuritySolutionDescribeBlockFtrConfig } from '@kbn/security-solution-plugin/scripts/run_cypress/utils';

export {};

import 'cypress-react-selector';
// @ts-expect-error ts(2306) module has some interesting ways of importing, see https://github.com/cypress-io/cypress/blob/0871b03c5b21711cd23056454da8f23dcaca4950/npm/grep/README.md#support-file
import registerCypressGrep from '@cypress/grep';
registerCypressGrep();

import type { SecuritySolutionDescribeBlockFtrConfig } from '@kbn/security-solution-plugin/scripts/run_cypress/utils';
import type { ServerlessRoleName } from './roles';
import { login } from '../../../../test_serverless/functional/test_suites/security/cypress/tasks/login';

registerCypressGrep();
import 'cypress-react-selector';
import { login } from '../../../../test_serverless/functional/test_suites/security/cypress/tasks/login';

declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
Expand Down
6 changes: 5 additions & 1 deletion x-pack/plugins/osquery/cypress/tasks/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ export const navigateTo = (page: string, opts?: Partial<Cypress.VisitOptions>) =

// There's a security warning toast that seemingly makes ui elements in the bottom right unavailable, so we close it
closeToastIfVisible();
cy.waitForReact();
cy.waitForReact(
10000,
Cypress.env('cypress-react-selector')?.root,
'../../../node_modules/resq/dist/index.js'
);
};

export const openNavigationFlyout = () => {
Expand Down
7 changes: 4 additions & 3 deletions x-pack/plugins/osquery/cypress/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
"extends": "../../../../tsconfig.base.json",
"include": [
"**/*",
"../cypress.config.ts",
"../serverless_cypress.config.ts",
"./cypress.config.ts",
"./serverless_cypress.config.ts",
"../../../test_serverless/shared/lib"
],
"exclude": [
"target/**/*"
"target/**/*",
"../../../test_serverless/shared/lib/security/default_http_headers.ts"
],
"compilerOptions": {
"outDir": "target/types",
Expand Down
12 changes: 7 additions & 5 deletions x-pack/plugins/osquery/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
"scripts": {
"cypress:burn": "yarn cypress:run --env burn=2 --concurrency=1 --headed",
"cypress:changed-specs-only": "yarn cypress:run --changed-specs-only --env burn=2",
"cypress:open": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel open --config-file ../osquery/cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/cli_config",
"cypress:run": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel run --config-file ../osquery/cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/cli_config --concurrency 1",
"cypress:serverless:open": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel open --config-file ../osquery/serverless_cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/serverless_cli_config",
"cypress:serverless:run": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel run --config-file ../osquery/serverless_cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/serverless_cli_config --concurrency 1",
"cypress": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel --config-file ../osquery/cypress/cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/cli_config",
"cypress:open": "yarn cypress open",
"cypress:run": "yarn cypress run",
"cypress:serverless": "NODE_OPTIONS=--openssl-legacy-provider node ../security_solution/scripts/start_cypress_parallel --config-file ../osquery/cypress/serverless_cypress.config.ts --ftr-config-file ../../../x-pack/test/osquery_cypress/serverless_cli_config",
"cypress:serverless:open": "yarn cypress:serverless open",
"cypress:serverless:run": "yarn cypress:serverless run",
"nyc": "../../../node_modules/.bin/nyc report --reporter=text-summary",
"junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-osquery/cypress/results/mochawesome*.json > ../../../target/kibana-osquery/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-osquery/cypress/results/output.json --reportDir ../../../target/kibana-osquery/cypress/results && yarn junit:transform && mkdir -p ../../../target/junit && cp ../../../target/kibana-osquery/cypress/results/*.xml ../../../target/junit/",
"junit:transform": "node ../security_solution/scripts/junit_transformer --pathPattern '../../../target/kibana-osquery/cypress/results/*.xml' --rootDirectory ../../../ --reportName 'Osquery Cypress' --writeInPlace"
}
}
}
19 changes: 7 additions & 12 deletions x-pack/plugins/osquery/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
{
"extends": "../../../tsconfig.base.json",
"compilerOptions": {
"outDir": "target/types",
"outDir": "target/types"
},
"exclude": [
"cypress.config.ts",
"serverless_cypress.config.ts",
"target/**/*",
"target/**/*"
],
"include": [
// add all the folders contains files to be compiled
Expand All @@ -15,8 +13,6 @@
"scripts/**/*",
"scripts/**/**.json",
"server/**/*",
"cypress.config.ts",
"serverless_cypress.config.ts",
"../../../typings/**/*",
// ECS and Osquery schema files
"public/common/schemas/*/**.json",
Expand All @@ -25,22 +21,20 @@
],
"kbn_references": [
"@kbn/core",
{ "path": "../../../src/setup_node_env/tsconfig.json" },
{
"path": "../../../src/setup_node_env/tsconfig.json"
},
// add references to other TypeScript projects the plugin depends on

// requiredPlugins from ./kibana.json
"@kbn/data-plugin",
"@kbn/navigation-plugin",
"@kbn/fleet-plugin",

// optionalPlugins from ./kibana.json
"@kbn/cases-plugin",

// requiredBundles from ./kibana.json
"@kbn/es-ui-shared-plugin",
"@kbn/kibana-react-plugin",
"@kbn/kibana-utils-plugin",

// packages
"@kbn/config-schema",
"@kbn/es-query",
Expand Down Expand Up @@ -77,5 +71,6 @@
"@kbn/core-saved-objects-server",
"@kbn/monaco",
"@kbn/io-ts-utils",
"@kbn/shared-ux-page-kibana-template"
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ const sendApiLoginRequest = (
};

interface CyLoginTask {
(user?: ServerlessRoleName): ReturnType<typeof sendApiLoginRequest>;
(user?: ServerlessRoleName | 'elastic'): ReturnType<typeof sendApiLoginRequest>;

/**
* Login using any username/password
Expand Down

0 comments on commit 0544223

Please sign in to comment.