Removing esArchiver in favor of testDataLoader for bulk_get Saved Objects integration tests (#140998) (#142600)

* Removing esArchiver in favor of testDataLoader

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

* Adding test data for loader

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

* Adding generic TestDataLoader

* Importing just the type per PR feedback

* Changing testDataLoader function names to be more descriptive

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Larry Gregory <larry.gregory@elastic.co>
Co-authored-by: Thomas Watson <watson@elastic.co>
(cherry picked from commit 6875d18d0f)

Co-authored-by: Kurt <kc13greiner@users.noreply.github.com>
This commit is contained in:
Kibana Machine 2022-10-04 07:46:20 -06:00 committed by GitHub
parent 7dcf3da9b0
commit 95e32aaab5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 401 additions and 62 deletions

View file

@ -5,16 +5,14 @@
* 2.0.
*/
import { FtrProviderContext } from '../ftr_provider_context';
const SPACE_1 = {
export const SPACE_1 = {
id: 'space_1',
name: 'Space 1',
description: 'This is the first test space',
disabledFeatures: [],
};
const SPACE_2 = {
export const SPACE_2 = {
id: 'space_2',
name: 'Space 2',
description: 'This is the second test space',
@ -64,36 +62,38 @@ const OBJECTS_TO_SHARE: Array<{
},
];
export function getTestDataLoader({ getService }: FtrProviderContext) {
// @ts-ignore
export function getTestDataLoader({ getService }) {
const spacesService = getService('spaces');
const kbnServer = getService('kibanaServer');
const supertest = getService('supertest');
const log = getService('log');
return {
before: async () => {
createFtrSpaces: async () => {
await Promise.all([await spacesService.create(SPACE_1), await spacesService.create(SPACE_2)]);
},
after: async () => {
deleteFtrSpaces: async () => {
await Promise.all([spacesService.delete(SPACE_1.id), spacesService.delete(SPACE_2.id)]);
},
beforeEach: async () => {
createFtrSavedObjectsData: async (
spaceData: Array<{ spaceName: string | null; dataUrl: string }>
) => {
log.debug('Loading test data for the following spaces: default, space_1 and space_2');
await Promise.all([
kbnServer.importExport.load(
'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/default_space.json'
),
kbnServer.importExport.load(
'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_1.json',
{ space: SPACE_1.id }
),
kbnServer.importExport.load(
'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_2.json',
{ space: SPACE_2.id }
),
]);
await Promise.all(
spaceData.map((spaceDataObj) => {
if (spaceDataObj.spaceName) {
return kbnServer.importExport.load(spaceDataObj.dataUrl, {
space: spaceDataObj.spaceName,
});
} else {
return kbnServer.importExport.load(spaceDataObj.dataUrl);
}
})
);
// Adjust spaces for the imported saved objects.
for (const { objects, spacesToAdd = [], spacesToRemove = [] } of OBJECTS_TO_SHARE) {
@ -111,9 +111,9 @@ export function getTestDataLoader({ getService }: FtrProviderContext) {
}
},
afterEach: async () => {
deleteFtrSavedObjectsData: async () => {
const allSpacesIds = [
...(await spacesService.getAll()).map((space) => space.id),
...(await spacesService.getAll()).map((space: { id: string }) => space.id),
'non_existent_space',
];
log.debug(`Removing data from the following spaces: ${allSpacesIds.join(', ')}`);

View file

@ -0,0 +1,163 @@
{
"attributes": {
"title": "logstash-*"
},
"coreMigrationVersion": "8.4.0",
"id": "defaultspace-index-pattern-id",
"migrationVersion": {
"index-pattern": "8.0.0"
},
"originId": "cts_ip_1",
"references": [],
"type": "index-pattern",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyOCwxXQ=="
}
{
"attributes": {
"title": "Count of requests",
"uiStateJSON": "{\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}",
"version": 1,
"visState": "{\"title\":\"Count of requests\",\"type\":\"area\",\"params\":{\"type\":\"area\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}]}",
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"defaultspace-index-pattern-id\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
}
},
"id": "defaultspace-isolatedtype-id",
"references": [],
"type": "isolatedtype",
"updated_at": "2017-09-21T18:51:23.794Z",
"version": "WzQ4NywxXQ=="
}
{
"attributes": {
"title": "Requests",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
}
},
"coreMigrationVersion": "8.4.0",
"id": "defaultspace-dashboard-id",
"migrationVersion": {
"dashboard": "8.4.0"
},
"type": "dashboard",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyMCwxXQ=="
}
{
"attributes": {
"title": "A share-capable (isolated) saved-object only in the default space"
},
"id": "only_default_space",
"type": "sharecapabletype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A shared saved-object in all spaces"
},
"id": "all_spaces",
"type": "sharedtype",
"references": [],
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ5NywxXQ=="
}
{
"attributes": {
"title": "My favorite global object"
},
"id": "globaltype-id",
"references": [],
"type": "globaltype",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzQ4NywxXQ=="
}
{
"attributes": {
"title": "A shared saved-object in the default and space_1 spaces"
},
"id": "default_and_space_1",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A sharedtype saved-object with id: conflict_1"
},
"id": "conflict_1",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A sharedtype saved-object with id: conflict_2a"
},
"id": "conflict_2a",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A sharedtype saved-object with id: conflict_2b"
},
"id": "conflict_2b",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A sharedtype saved-object with id: conflict_3"
},
"id": "conflict_3",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A sharedtype saved-object with id: conflict_4a"
},
"id": "conflict_4a",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "Resolve outcome exactMatch"
},
"id": "exact-match",
"type": "resolvetype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "Resolve outcome aliasMatch"
},
"id": "alias-match-newid",
"type": "resolvetype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}

View file

@ -0,0 +1,72 @@
{
"attributes": {
"title": "logstash-*"
},
"coreMigrationVersion": "8.4.0",
"id": "space1-index-pattern-id",
"migrationVersion": {
"index-pattern": "8.0.0"
},
"references": [],
"type": "index-pattern",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyOSwxXQ=="
}
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"space1-index-pattern-id\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
},
"title": "Count of requests",
"uiStateJSON": "{\"spy\":{\"mode\":{\"name\":null,\"fill\":false}}}",
"version": 1,
"visState": "{\"title\":\"Count of requests\",\"type\":\"area\",\"params\":{\"type\":\"area\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}]}"
},
"id": "space1-isolatedtype-id",
"references": [],
"type": "isolatedtype",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzQ4NywxXQ=="
}
{
"attributes": {
"title": "Requests",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
},
"version": 1
},
"coreMigrationVersion": "8.4.0",
"id": "space1-dashboard-id",
"migrationVersion": {
"dashboard": "8.4.0"
},
"type": "dashboard",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyMCwxXQ=="
}
{
"attributes": {
"title": "A shared saved-object only in space_1"
},
"id": "only_space_1",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}
{
"attributes": {
"title": "A share-capable (isolated) saved-object only in space_1"
},
"id": "only_space_1",
"type": "sharecapabletype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}

View file

@ -0,0 +1,58 @@
{
"attributes": {
"title": "logstash-*"
},
"coreMigrationVersion": "8.4.0",
"id": "space2-index-pattern-id",
"migrationVersion": {
"index-pattern": "8.0.0"
},
"references": [],
"type": "index-pattern",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyOSwxXQ=="
}
{
"attributes": {
"description": "",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"index\":\"space2-index-pattern-id\",\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"lucene\"}}"
},
"title": "Count of requests",
"version": 1
},
"id": "space2-isolatedtype-id",
"references": [],
"type": "isolatedtype",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzQ4NywxXQ=="
}
{
"attributes": {
"title": "Requests",
"kibanaSavedObjectMeta": {
"searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[],\"highlightAll\":true,\"version\":true}"
},
"version": 1
},
"coreMigrationVersion": "8.4.0",
"id": "space2-dashboard-id",
"migrationVersion": {
"dashboard": "8.4.0"
},
"type": "dashboard",
"updated_at": "2017-09-21T18:49:16.270Z",
"version": "WzUyMCwxXQ=="
}
{
"attributes": {
"title": "A shared saved-object only in space_2"
},
"id": "only_space_2",
"type": "sharedtype",
"updated_at": "2017-09-21T18:59:16.270Z",
"version": "WzQ4OCwxXQ=="
}

View file

@ -6,11 +6,12 @@
*/
import expect from '@kbn/expect';
import { SuperTest } from 'supertest';
import { getTestDataLoader, SPACE_1, SPACE_2 } from '../../../common/lib/test_data_loader';
import { SAVED_OBJECT_TEST_CASES as CASES } from '../lib/saved_object_test_cases';
import { SPACES } from '../lib/spaces';
import { expectResponses, getUrlPrefix, getTestTitle } from '../lib/saved_object_test_utils';
import { ExpectResponseBody, TestCase, TestDefinition, TestSuite } from '../lib/types';
import type { FtrProviderContext } from '../ftr_provider_context';
export interface BulkGetTestDefinition extends TestDefinition {
request: Array<{ type: string; id: string }>;
@ -33,7 +34,10 @@ const createRequest = ({ type, id, namespaces }: BulkGetTestCase) => ({
...(namespaces && { namespaces }), // individual "object namespaces" string array
});
export function bulkGetTestSuiteFactory(esArchiver: any, supertest: SuperTest<any>) {
export function bulkGetTestSuiteFactory(context: FtrProviderContext) {
const testDataLoader = getTestDataLoader(context);
const supertest = context.getService('supertestWithoutAuth');
const expectSavedObjectForbidden = expectResponses.forbiddenTypes('bulk_get');
const expectResponseBody =
(testCases: BulkGetTestCase | BulkGetTestCase[], statusCode: 200 | 403): ExpectResponseBody =>
@ -91,16 +95,31 @@ export function bulkGetTestSuiteFactory(esArchiver: any, supertest: SuperTest<an
const { user, spaceId = SPACES.DEFAULT.spaceId, tests } = definition;
describeFn(description, () => {
before(() =>
esArchiver.load(
'x-pack/test/saved_object_api_integration/common/fixtures/es_archiver/saved_objects/spaces'
)
);
after(() =>
esArchiver.unload(
'x-pack/test/saved_object_api_integration/common/fixtures/es_archiver/saved_objects/spaces'
)
);
before(async () => {
await testDataLoader.createFtrSpaces();
await testDataLoader.createFtrSavedObjectsData([
{
spaceName: null,
dataUrl:
'x-pack/test/saved_object_api_integration/common/fixtures/kbn_archiver/default_space.json',
},
{
spaceName: SPACE_1.id,
dataUrl:
'x-pack/test/saved_object_api_integration/common/fixtures/kbn_archiver/space_1.json',
},
{
spaceName: SPACE_2.id,
dataUrl:
'x-pack/test/saved_object_api_integration/common/fixtures/kbn_archiver/space_2.json',
},
]);
});
after(async () => {
await testDataLoader.deleteFtrSpaces();
await testDataLoader.deleteFtrSavedObjectsData();
});
for (const test of tests) {
it(`should return ${test.responseStatusCode} ${test.title}`, async () => {

View file

@ -67,14 +67,9 @@ const createTestCases = (spaceId: string) => {
return { normalTypes, crossNamespace, hiddenType, allTypes };
};
export default function ({ getService }: FtrProviderContext) {
const supertest = getService('supertestWithoutAuth');
const esArchiver = getService('esArchiver');
const { addTests, createTestDefinitions, expectSavedObjectForbidden } = bulkGetTestSuiteFactory(
esArchiver,
supertest
);
export default function (context: FtrProviderContext) {
const { addTests, createTestDefinitions, expectSavedObjectForbidden } =
bulkGetTestSuiteFactory(context);
const createTests = (spaceId: string) => {
const { normalTypes, crossNamespace, hiddenType, allTypes } = createTestCases(spaceId);
// use singleRequest to reduce execution time and/or test combined cases

View file

@ -55,11 +55,8 @@ const createTestCases = (spaceId: string) => [
{ ...CASES.MULTI_NAMESPACE_ONLY_SPACE_1, namespaces: [ALL_SPACES_ID] },
];
export default function ({ getService }: FtrProviderContext) {
const supertest = getService('supertest');
const esArchiver = getService('esArchiver');
const { addTests, createTestDefinitions } = bulkGetTestSuiteFactory(esArchiver, supertest);
export default function (context: FtrProviderContext) {
const { addTests, createTestDefinitions } = bulkGetTestSuiteFactory(context);
const createTests = (spaceId: string) => {
const testCases = createTestCases(spaceId);
return createTestDefinitions(testCases, false, { singleRequest: true });

View file

@ -14,8 +14,8 @@ import {
} from '@kbn/core/server';
import { getAggregatedSpaceData, getUrlPrefix } from '../lib/space_test_utils';
import { DescribeFn, TestDefinitionAuthentication } from '../lib/types';
import { getTestDataLoader } from '../lib/test_data_loader';
import { FtrProviderContext } from '../ftr_provider_context';
import { getTestDataLoader, SPACE_1, SPACE_2 } from '../../../common/lib/test_data_loader';
import type { FtrProviderContext } from '../ftr_provider_context';
type TestResponse = Record<string, any>;
@ -74,6 +74,21 @@ const UUID_PATTERN = new RegExp(
/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
);
const SPACE_DATA_TO_LOAD: Array<{ spaceName: string | null; dataUrl: string }> = [
{
spaceName: null,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/default_space.json',
},
{
spaceName: SPACE_1.id,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_1.json',
},
{
spaceName: SPACE_2.id,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_2.json',
},
];
const getDestinationWithoutConflicts = () => 'space_2';
const getDestinationWithConflicts = (originSpaceId?: string) =>
!originSpaceId || originSpaceId === DEFAULT_SPACE_ID ? 'space_1' : DEFAULT_SPACE_ID;
@ -748,16 +763,19 @@ export function copyToSpaceTestSuiteFactory(context: FtrProviderContext) {
// test data only allows for the following spaces as the copy origin
expect(['default', 'space_1']).to.contain(spaceId);
await testDataLoader.before();
await testDataLoader.createFtrSpaces();
});
after(async () => {
await testDataLoader.after();
await testDataLoader.deleteFtrSpaces();
});
describe('single-namespace types', () => {
beforeEach(async () => await testDataLoader.beforeEach());
afterEach(async () => await testDataLoader.afterEach());
beforeEach(async () => {
await testDataLoader.createFtrSavedObjectsData(SPACE_DATA_TO_LOAD);
});
afterEach(async () => await testDataLoader.deleteFtrSavedObjectsData());
const dashboardObject = { type: 'dashboard', id: `cts_dashboard_${spaceId}` };
@ -898,8 +916,8 @@ export function copyToSpaceTestSuiteFactory(context: FtrProviderContext) {
const spaces = ['space_2'];
const includeReferences = false;
describe(`multi-namespace types with overwrite=${overwrite} and createNewCopies=${createNewCopies}`, () => {
before(async () => await testDataLoader.beforeEach());
after(async () => await testDataLoader.afterEach());
before(async () => await testDataLoader.createFtrSavedObjectsData(SPACE_DATA_TO_LOAD));
after(async () => await testDataLoader.deleteFtrSavedObjectsData());
const testCases = tests.multiNamespaceTestCases(overwrite, createNewCopies);
testCases.forEach(({ testTitle, objects, statusCode, response }) => {

View file

@ -11,8 +11,8 @@ import { DEFAULT_SPACE_ID } from '@kbn/spaces-plugin/common/constants';
import { CopyResponse } from '@kbn/spaces-plugin/server/lib/copy_to_spaces';
import { getUrlPrefix } from '../lib/space_test_utils';
import { DescribeFn, TestDefinitionAuthentication } from '../lib/types';
import { FtrProviderContext } from '../ftr_provider_context';
import { getTestDataLoader } from '../lib/test_data_loader';
import type { FtrProviderContext } from '../ftr_provider_context';
import { getTestDataLoader, SPACE_1, SPACE_2 } from '../../../common/lib/test_data_loader';
type TestResponse = Record<string, any>;
@ -44,6 +44,21 @@ interface ResolveCopyToSpaceTestDefinition {
const NON_EXISTENT_SPACE_ID = 'non_existent_space';
const SPACE_DATA_TO_LOAD: Array<{ spaceName: string | null; dataUrl: string }> = [
{
spaceName: null,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/default_space.json',
},
{
spaceName: SPACE_1.id,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_1.json',
},
{
spaceName: SPACE_2.id,
dataUrl: 'x-pack/test/spaces_api_integration/common/fixtures/kbn_archiver/space_2.json',
},
];
const getDestinationSpace = (originSpaceId?: string) => {
if (!originSpaceId || originSpaceId === DEFAULT_SPACE_ID) {
return 'space_1';
@ -487,8 +502,10 @@ export function resolveCopyToSpaceConflictsSuite(context: FtrProviderContext) {
});
describe('single-namespace types', () => {
beforeEach(async () => await testDataLoader.beforeEach());
afterEach(async () => await testDataLoader.afterEach());
beforeEach(
async () => await testDataLoader.createFtrSavedObjectsData(SPACE_DATA_TO_LOAD)
);
afterEach(async () => await testDataLoader.deleteFtrSavedObjectsData());
const dashboardObject = { type: 'dashboard', id: `cts_dashboard_${spaceId}` };
const visualizationObject = { type: 'visualization', id: `cts_vis_3_${spaceId}` };
@ -630,8 +647,8 @@ export function resolveCopyToSpaceConflictsSuite(context: FtrProviderContext) {
const includeReferences = false;
const createNewCopies = false;
describe(`multi-namespace types with "overwrite" retry`, () => {
before(async () => await testDataLoader.beforeEach());
after(async () => await testDataLoader.afterEach());
before(async () => await testDataLoader.createFtrSavedObjectsData(SPACE_DATA_TO_LOAD));
after(async () => await testDataLoader.deleteFtrSavedObjectsData());
const testCases = tests.multiNamespaceTestCases();
testCases.forEach(({ testTitle, objects, retries, statusCode, response }) => {