mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
* export all saved objects returned from search, not all saved objects that exist * remove unused mock
This commit is contained in:
parent
31e8461aa1
commit
3eb888bd8a
5 changed files with 9 additions and 56 deletions
|
@ -20,7 +20,7 @@
|
|||
import React from 'react';
|
||||
import { shallowWithIntl } from 'test_utils/enzyme_helpers';
|
||||
|
||||
import { ObjectsTable, POSSIBLE_TYPES } from '../objects_table';
|
||||
import { ObjectsTable } from '../objects_table';
|
||||
import { Flyout } from '../components/flyout/';
|
||||
import { Relationships } from '../components/relationships/';
|
||||
import { findObjects } from '../../../lib';
|
||||
|
@ -57,10 +57,6 @@ jest.mock('../../../lib/fetch_export_objects', () => ({
|
|||
fetchExportObjects: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('../../../lib/fetch_export_by_type', () => ({
|
||||
fetchExportByType: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('../../../lib/get_saved_object_counts', () => ({
|
||||
getSavedObjectCounts: jest.fn().mockImplementation(() => {
|
||||
return {
|
||||
|
@ -320,7 +316,7 @@ describe('ObjectsTable', () => {
|
|||
});
|
||||
|
||||
it('should export all', async () => {
|
||||
const { fetchExportByType } = require('../../../lib/fetch_export_by_type');
|
||||
const { fetchExportObjects } = require('../../../lib/fetch_export_objects');
|
||||
const { saveAs } = require('@elastic/filesaver');
|
||||
const component = shallowWithIntl(
|
||||
<ObjectsTable.WrappedComponent
|
||||
|
@ -335,11 +331,11 @@ describe('ObjectsTable', () => {
|
|||
|
||||
// Set up mocks
|
||||
const blob = new Blob([JSON.stringify(allSavedObjects)], { type: 'application/ndjson' });
|
||||
fetchExportByType.mockImplementation(() => blob);
|
||||
fetchExportObjects.mockImplementation(() => blob);
|
||||
|
||||
await component.instance().onExportAll();
|
||||
|
||||
expect(fetchExportByType).toHaveBeenCalledWith(POSSIBLE_TYPES, true);
|
||||
expect(fetchExportObjects).toHaveBeenCalledWith(allSavedObjects.map(so => ({ type: so.type, id: so.id })), true);
|
||||
expect(saveAs).toHaveBeenCalledWith(blob, 'export.ndjson');
|
||||
expect(addSuccessMock).toHaveBeenCalledWith({ title: 'Your file is downloading in the background' });
|
||||
});
|
||||
|
|
|
@ -39,10 +39,6 @@ jest.mock('ui/chrome', () => ({
|
|||
addBasePath: () => ''
|
||||
}));
|
||||
|
||||
jest.mock('../../../../../lib/fetch_export_by_type', () => ({
|
||||
fetchExportByType: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('../../../../../lib/fetch_export_objects', () => ({
|
||||
fetchExportObjects: jest.fn(),
|
||||
}));
|
||||
|
|
|
@ -58,7 +58,6 @@ import {
|
|||
getRelationships,
|
||||
getSavedObjectLabel,
|
||||
fetchExportObjects,
|
||||
fetchExportByType,
|
||||
findObjects,
|
||||
} from '../../lib';
|
||||
import { FormattedMessage, injectI18n } from '@kbn/i18n/react';
|
||||
|
@ -303,20 +302,14 @@ class ObjectsTableUI extends Component {
|
|||
|
||||
onExportAll = async () => {
|
||||
const { intl } = this.props;
|
||||
const { exportAllSelectedOptions, isIncludeReferencesDeepChecked } = this.state;
|
||||
const exportTypes = Object.entries(exportAllSelectedOptions).reduce(
|
||||
(accum, [id, selected]) => {
|
||||
if (selected) {
|
||||
accum.push(id);
|
||||
}
|
||||
return accum;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
const { exportAllSelectedOptions, isIncludeReferencesDeepChecked, savedObjects } = this.state;
|
||||
|
||||
const exportObjects = savedObjects.filter(so => exportAllSelectedOptions[so.type]).map(so => ({ type: so.type, id: so.id }));
|
||||
|
||||
let blob;
|
||||
try {
|
||||
blob = await fetchExportByType(exportTypes, isIncludeReferencesDeepChecked);
|
||||
blob = await fetchExportObjects(exportObjects, isIncludeReferencesDeepChecked);
|
||||
} catch (e) {
|
||||
toastNotifications.addDanger({
|
||||
title: intl.formatMessage({
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch B.V. under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch B.V. licenses this file to you under
|
||||
* the Apache License, Version 2.0 (the "License"); you may
|
||||
* not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
import { kfetch } from 'ui/kfetch';
|
||||
|
||||
export async function fetchExportByType(types, includeReferencesDeep = false) {
|
||||
return await kfetch({
|
||||
method: 'POST',
|
||||
pathname: '/api/saved_objects/_export',
|
||||
body: JSON.stringify({
|
||||
type: types,
|
||||
includeReferencesDeep,
|
||||
}),
|
||||
});
|
||||
}
|
|
@ -17,7 +17,6 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
export * from './fetch_export_by_type';
|
||||
export * from './fetch_export_objects';
|
||||
export * from './in_app_url';
|
||||
export * from './get_relationships';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue