104 lines
3.1 KiB
JavaScript
104 lines
3.1 KiB
JavaScript
/*
|
|
* Copyright 2016 FUJITSU LIMITED
|
|
*
|
|
* Licensed 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.
|
|
*/
|
|
|
|
const sinon = require('sinon');
|
|
const chai = require('chai');
|
|
|
|
const CONSTANTS = require('../const');
|
|
const verifyIndexPattern = require('../mt/verify/_verify_index_pattern');
|
|
|
|
describe('plugins/fts-keystone', ()=> {
|
|
describe('mt', ()=> {
|
|
describe('verify', () => {
|
|
describe('verify_index_pattern', () => {
|
|
|
|
it('should reject * as index-pattern', () => {
|
|
let indexPattern = '*';
|
|
let request = {
|
|
url: {
|
|
path: `/a/${indexPattern}/`
|
|
},
|
|
yar: {
|
|
_store: {}
|
|
}
|
|
};
|
|
verifyIndexPattern(request, (result) => {
|
|
chai.expect(result.isBoom)
|
|
.to.be.true;
|
|
chai.expect(result.output.payload.message)
|
|
.to.be.eq('* as pattern is not supported at the moment');
|
|
chai.expect(result.output.statusCode)
|
|
.to.be.eq(422);
|
|
});
|
|
});
|
|
|
|
it('should reject index-pattern if it does not match user`s projects', () => {
|
|
let projects = [
|
|
{ id: 'project_1'}, { id: 'project_2' }, {id: 'project_3'}
|
|
];
|
|
let indexPattern = 'test';
|
|
let store = {};
|
|
|
|
store[CONSTANTS.SESSION_PROJECTS_KEY] = projects;
|
|
|
|
let request = {
|
|
url: {
|
|
path: `/a/${indexPattern}/`
|
|
},
|
|
yar: {
|
|
_store: store
|
|
}
|
|
};
|
|
let reply = sinon.spy();
|
|
|
|
verifyIndexPattern(request, (result) => {
|
|
chai.expect(result.isBoom)
|
|
.to.be.true;
|
|
chai.expect(result.output.payload.message)
|
|
.to.be.eq(`${indexPattern} do not match any project of current user`);
|
|
chai.expect(result.output.statusCode)
|
|
.to.be.eq(422);
|
|
});
|
|
});
|
|
|
|
it('should accept index-pattern it it constaint project id', () => {
|
|
let projects = [
|
|
{ id: 'project_1'}, { id: 'project_2' }, {id: 'project_3'}
|
|
];
|
|
let indexPattern = projects[1].id;
|
|
let store = {};
|
|
|
|
store[CONSTANTS.SESSION_PROJECTS_KEY] = projects;
|
|
|
|
let request = {
|
|
url: {
|
|
path: `/a/${indexPattern}/`
|
|
},
|
|
yar: {
|
|
_store: store
|
|
}
|
|
};
|
|
let reply = {
|
|
continue: sinon.spy()
|
|
};
|
|
|
|
verifyIndexPattern(request, reply);
|
|
chai.expect(reply.continue.calledOnce).to.be.ok;
|
|
});
|
|
|
|
});
|
|
});
|
|
});
|
|
});
|