This repository has been archived by the owner on Mar 31, 2024. It is now read-only.
forked from elastic/kibana
/
update.test.js
85 lines (72 loc) · 2.42 KB
/
update.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
* 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 sinon from 'sinon';
import { createUpdateRoute } from './update';
import { MockServer } from './_mock_server';
describe('PUT /api/saved_objects/{type}/{id?}', () => {
const savedObjectsClient = { update: sinon.stub().returns('') };
let server;
beforeEach(() => {
server = new MockServer();
const prereqs = {
getSavedObjectsClient: {
assign: 'savedObjectsClient',
method() {
return savedObjectsClient;
}
},
};
server.route(createUpdateRoute(prereqs));
});
afterEach(() => {
savedObjectsClient.update.resetHistory();
});
it('formats successful response', async () => {
const request = {
method: 'PUT',
url: '/api/saved_objects/index-pattern/logstash-*',
payload: {
attributes: {
title: 'Testing'
}
}
};
savedObjectsClient.update.returns(Promise.resolve(true));
const { payload, statusCode } = await server.inject(request);
const response = JSON.parse(payload);
expect(statusCode).toBe(200);
expect(response).toEqual(true);
});
it('calls upon savedObjectClient.update', async () => {
const attributes = { title: 'Testing' };
const options = { version: 'foo' };
const request = {
method: 'PUT',
url: '/api/saved_objects/index-pattern/logstash-*',
payload: {
attributes,
version: options.version
}
};
await server.inject(request);
expect(savedObjectsClient.update.calledOnce).toBe(true);
const args = savedObjectsClient.update.getCall(0).args;
expect(args).toEqual(['index-pattern', 'logstash-*', attributes, options]);
});
});