Skip to content

Commit

Permalink
updates tests with test plan strings
Browse files Browse the repository at this point in the history
  • Loading branch information
dplumlee committed Jul 18, 2024
1 parent 1740afb commit 37b5f5d
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import type { ThreeVersionsOf } from '../../../../../../../common/api/detection_
import { MissingVersion } from '../../../../../../../common/api/detection_engine/prebuilt_rules/model/diff/three_way_diff/three_way_diff';
import { calculateFieldsDiffFor } from './diff_calculation_helpers';
import {
multiLineStringDiffAlgorithm,
numberDiffAlgorithm,
scalarArrayDiffAlgorithm,
simpleDiffAlgorithm,
Expand Down Expand Up @@ -176,16 +177,16 @@ const commonFieldsDiffAlgorithms: FieldsDiffAlgorithmsFor<DiffableCommonFields>
version: numberDiffAlgorithm,
name: singleLineStringDiffAlgorithm,
tags: scalarArrayDiffAlgorithm,
description: simpleDiffAlgorithm,
description: multiLineStringDiffAlgorithm,
severity: singleLineStringDiffAlgorithm,
severity_mapping: simpleDiffAlgorithm,
risk_score: numberDiffAlgorithm,
risk_score_mapping: simpleDiffAlgorithm,
references: scalarArrayDiffAlgorithm,
false_positives: simpleDiffAlgorithm,
threat: simpleDiffAlgorithm,
note: simpleDiffAlgorithm,
setup: simpleDiffAlgorithm,
note: multiLineStringDiffAlgorithm,
setup: multiLineStringDiffAlgorithm,
related_integrations: simpleDiffAlgorithm,
required_fields: simpleDiffAlgorithm,
author: scalarArrayDiffAlgorithm,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ export default ({ loadTestFile }: FtrProviderContext): void => {
loadTestFile(require.resolve('./upgrade_review_prebuilt_rules.number_fields'));
loadTestFile(require.resolve('./upgrade_review_prebuilt_rules.single_line_string_fields'));
loadTestFile(require.resolve('./upgrade_review_prebuilt_rules.scalar_array_fields'));
loadTestFile(require.resolve('./upgrade_review_prebuilt_rules.multi_line_string_fields'));
});
};
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,12 @@ import {
} from '../../../../utils';
import { deleteAllRules } from '../../../../../../../common/utils/security_solution';

// TODO: ALL CASES NEED THEIR SAMPLE VERSIONS UPDATED TO BE MULTI LINE STRINGS

export default ({ getService }: FtrProviderContext): void => {
const es = getService('es');
const supertest = getService('supertest');
const log = getService('log');

describe('@ess @serverless @skipInServerlessMKI review prebuilt rules updates from package with mock rule assets', () => {
describe.only('@ess @serverless @skipInServerlessMKI review prebuilt rules updates from package with mock rule assets', () => {
beforeEach(async () => {
await deleteAllRules(supertest, log);
await deleteAllTimelines(es, log);
Expand All @@ -38,7 +36,11 @@ export default ({ getService }: FtrProviderContext): void => {

describe(`multi line string fields`, () => {
const getRuleAssetSavedObjects = () => [
createRuleAssetSavedObject({ rule_id: 'rule-1', version: 1, description: 'A' }),
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 1,
description: 'My description.\nThis is a second line.',
}),
];

describe("when rule field doesn't have an update and has no custom value - scenario AAA", () => {
Expand All @@ -51,7 +53,7 @@ export default ({ getService }: FtrProviderContext): void => {
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
description: 'A',
description: 'My description.\nThis is a second line.',
version: 2,
}),
];
Expand Down Expand Up @@ -85,14 +87,14 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My GREAT description.\nThis is a second line.',
});

// Increment the version of the installed rule, do NOT update the related multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
description: 'A',
description: 'My description.\nThis is a second line.',
version: 2,
}),
];
Expand All @@ -102,10 +104,10 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
base_version: 'A',
current_version: 'B',
target_version: 'A',
merged_version: 'B',
base_version: 'My description.\nThis is a second line.',
current_version: 'My GREAT description.\nThis is a second line.',
target_version: 'My description.\nThis is a second line.',
merged_version: 'My GREAT description.\nThis is a second line.',
diff_outcome: ThreeWayDiffOutcome.CustomizedValueNoUpdate,
merge_outcome: ThreeWayMergeOutcome.Current,
has_conflict: false,
Expand Down Expand Up @@ -138,7 +140,7 @@ export default ({ getService }: FtrProviderContext): void => {
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'B',
description: 'My GREAT description.\nThis is a second line.',
}),
];
await createHistoricalPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand All @@ -147,10 +149,10 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
base_version: 'A',
current_version: 'A',
target_version: 'B',
merged_version: 'B',
base_version: 'My description.\nThis is a second line.',
current_version: 'My description.\nThis is a second line.',
target_version: 'My GREAT description.\nThis is a second line.',
merged_version: 'My GREAT description.\nThis is a second line.',
diff_outcome: ThreeWayDiffOutcome.StockValueCanUpdate,
merge_outcome: ThreeWayMergeOutcome.Target,
has_conflict: false,
Expand Down Expand Up @@ -180,15 +182,15 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My GREAT description.\nThis is a second line.',
});

// Increment the version of the installed rule, update a multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'B',
description: 'My GREAT description.\nThis is a second line.',
}),
];
await createHistoricalPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand All @@ -197,10 +199,10 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
base_version: 'A',
current_version: 'B',
target_version: 'B',
merged_version: 'B',
base_version: 'My description.\nThis is a second line.',
current_version: 'My GREAT description.\nThis is a second line.',
target_version: 'My GREAT description.\nThis is a second line.',
merged_version: 'My GREAT description.\nThis is a second line.',
diff_outcome: ThreeWayDiffOutcome.CustomizedValueSameUpdate,
merge_outcome: ThreeWayMergeOutcome.Current,
has_conflict: false,
Expand Down Expand Up @@ -232,15 +234,15 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My GREAT description.\nThis is a second line.',
});

// Increment the version of the installed rule, update a multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'C',
description: 'My description.\nThis is a second line, now longer.',
}),
];
await createHistoricalPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand All @@ -250,13 +252,13 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
base_version: 'A',
current_version: 'B',
target_version: 'C',
merged_version: 'B',
base_version: 'My description.\nThis is a second line.',
current_version: 'My GREAT description.\nThis is a second line.',
target_version: 'My description.\nThis is a second line, now longer.',
merged_version: 'My GREAT description.\nThis is a second line, now longer.',
diff_outcome: ThreeWayDiffOutcome.CustomizedValueCanUpdate,
merge_outcome: ThreeWayMergeOutcome.Conflict,
has_conflict: true,
merge_outcome: ThreeWayMergeOutcome.Merged,
has_conflict: false,
has_update: true,
},
version: {
Expand All @@ -270,7 +272,7 @@ export default ({ getService }: FtrProviderContext): void => {
has_update: true,
},
});
expect(reviewResponse.rules[0].diff.has_conflict).toBe(true);
expect(reviewResponse.rules[0].diff.has_conflict).toBe(false);
expect(reviewResponse.stats.num_rules_to_upgrade_total).toBe(1);
});
});
Expand All @@ -284,15 +286,15 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My GREAT description.\nThis is a third line.',
});

// Increment the version of the installed rule, update a multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'C',
description: 'My EXCELLENT description.\nThis is a fourth.',
}),
];
await createHistoricalPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand All @@ -302,10 +304,10 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
base_version: 'A',
current_version: 'B',
target_version: 'C',
merged_version: 'B',
base_version: 'My description.\nThis is a second line.',
current_version: 'My GREAT description.\nThis is a third line.',
target_version: 'My EXCELLENT description.\nThis is a fourth.',
merged_version: 'My GREAT description.\nThis is a third line.',
diff_outcome: ThreeWayDiffOutcome.CustomizedValueCanUpdate,
merge_outcome: ThreeWayMergeOutcome.Conflict,
has_conflict: true,
Expand Down Expand Up @@ -341,15 +343,15 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My description.\nThis is a second line.',
});

// Increment the version of the installed rule, update a multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'B',
description: 'My description.\nThis is a second line.',
}),
];
await createPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand Down Expand Up @@ -385,15 +387,15 @@ export default ({ getService }: FtrProviderContext): void => {
// Customize a multi line string field on the installed rule
await patchRule(supertest, log, {
rule_id: 'rule-1',
description: 'B',
description: 'My description.\nThis is a second line.',
});

// Increment the version of the installed rule, update a multi line string field, and create the new rule assets
const updatedRuleAssetSavedObjects = [
createRuleAssetSavedObject({
rule_id: 'rule-1',
version: 2,
description: 'C',
description: 'My GREAT description.\nThis is a second line.',
}),
];
await createPrebuiltRuleAssetSavedObjects(es, updatedRuleAssetSavedObjects);
Expand All @@ -403,9 +405,9 @@ export default ({ getService }: FtrProviderContext): void => {
const reviewResponse = await reviewPrebuiltRulesToUpgrade(supertest);
expect(reviewResponse.rules[0].diff.fields).toEqual({
description: {
current_version: 'B',
target_version: 'C',
merged_version: 'C',
current_version: 'My description.\nThis is a second line.',
target_version: 'My GREAT description.\nThis is a second line.',
merged_version: 'My GREAT description.\nThis is a second line.',
diff_outcome: ThreeWayDiffOutcome.StockValueCanUpdate,
merge_outcome: ThreeWayMergeOutcome.Target,
has_conflict: false,
Expand Down

0 comments on commit 37b5f5d

Please sign in to comment.