mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[Management] Fix bug with index pattern creation (#16693)
* Ensure we call scope.apply after route changing * PR feedback
This commit is contained in:
parent
6c57778245
commit
7164adb282
4 changed files with 42 additions and 5 deletions
|
@ -23,7 +23,8 @@ const services = {
|
|||
indexPatterns: {},
|
||||
savedObjectsClient: {},
|
||||
config: {},
|
||||
kbnUrl: {},
|
||||
changeUrl: () => {},
|
||||
scopeApply: () => {},
|
||||
};
|
||||
|
||||
describe('CreateIndexPatternWizard', () => {
|
||||
|
@ -94,4 +95,37 @@ describe('CreateIndexPatternWizard', () => {
|
|||
|
||||
expect(component).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('should create an index pattern', async () => {
|
||||
const get = jest.fn();
|
||||
const set = jest.fn();
|
||||
const create = jest.fn().mockImplementation(() => 'id');
|
||||
const clear = jest.fn();
|
||||
const changeUrl = jest.fn();
|
||||
|
||||
const component = shallow(
|
||||
<CreateIndexPatternWizard
|
||||
loadingDataDocUrl={loadingDataDocUrl}
|
||||
initialQuery={initialQuery}
|
||||
services={{
|
||||
...services,
|
||||
config: { get, set },
|
||||
indexPatterns: {
|
||||
get: () => ({
|
||||
create,
|
||||
}),
|
||||
cache: { clear }
|
||||
},
|
||||
changeUrl,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
component.setState({ indexPattern: 'foo' });
|
||||
await component.instance().createIndexPattern(null, 'id');
|
||||
expect(get).toBeCalled();
|
||||
expect(create).toBeCalled();
|
||||
expect(clear).toBeCalledWith('id');
|
||||
expect(changeUrl).toBeCalledWith(`/management/kibana/indices/id`);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -21,7 +21,7 @@ describe('CreateIndexPatternWizardRender', () => {
|
|||
indexPatterns: {},
|
||||
savedObjectsClient: {},
|
||||
config: {},
|
||||
kbnUrl: {},
|
||||
changeUrl: () => {},
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ export class CreateIndexPatternWizard extends Component {
|
|||
indexPatterns: PropTypes.object.isRequired,
|
||||
savedObjectsClient: PropTypes.object.isRequired,
|
||||
config: PropTypes.object.isRequired,
|
||||
kbnUrl: PropTypes.object.isRequired,
|
||||
changeUrl: PropTypes.func.isRequired,
|
||||
}).isRequired,
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ export class CreateIndexPatternWizard extends Component {
|
|||
}
|
||||
|
||||
services.indexPatterns.cache.clear(createdId);
|
||||
services.kbnUrl.change(`/management/kibana/indices/${createdId}`);
|
||||
services.changeUrl(`/management/kibana/indices/${createdId}`);
|
||||
}
|
||||
|
||||
goToTimeFieldStep = (indexPattern) => {
|
||||
|
|
|
@ -10,6 +10,7 @@ uiRoutes.when('/management/kibana/index', {
|
|||
template: angularTemplate,
|
||||
controller: function ($scope, $injector) {
|
||||
// Wait for the directives to execute
|
||||
const kbnUrl = $injector.get('kbnUrl');
|
||||
$scope.$$postDigest(() => {
|
||||
const $routeParams = $injector.get('$routeParams');
|
||||
const services = {
|
||||
|
@ -17,7 +18,9 @@ uiRoutes.when('/management/kibana/index', {
|
|||
es: $injector.get('es'),
|
||||
indexPatterns: $injector.get('indexPatterns'),
|
||||
savedObjectsClient: $injector.get('Private')(SavedObjectsClientProvider),
|
||||
kbnUrl: $injector.get('kbnUrl'),
|
||||
changeUrl: url => {
|
||||
$scope.$evalAsync(() => kbnUrl.changePath(url));
|
||||
},
|
||||
};
|
||||
|
||||
const initialQuery = $routeParams.id ? decodeURIComponent($routeParams.id) : undefined;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue