mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 00:49:03 +00:00
Adds API client to destroy queries (#784)
This commit is contained in:
parent
8647d9c669
commit
a9cfd5b641
4 changed files with 80 additions and 53 deletions
|
|
@ -64,6 +64,13 @@ class Kolide extends Base {
|
|||
.then(response => response.scheduled);
|
||||
}
|
||||
|
||||
destroyQuery = ({ id }) => {
|
||||
const { QUERIES } = endpoints;
|
||||
const endpoint = `${this.endpoint(QUERIES)}/${id}`;
|
||||
|
||||
return this.authenticatedDelete(endpoint);
|
||||
}
|
||||
|
||||
destroyPack = ({ id }) => {
|
||||
const { PACKS } = endpoints;
|
||||
const endpoint = `${this.endpoint(PACKS)}/${id}`;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import nock from 'nock';
|
|||
import Kolide from 'kolide';
|
||||
import helpers from 'kolide/helpers';
|
||||
import mocks from 'test/mocks';
|
||||
import { userStub } from 'test/stubs';
|
||||
import { queryStub, userStub } from 'test/stubs';
|
||||
|
||||
const {
|
||||
invalidForgotPasswordRequest,
|
||||
|
|
@ -13,6 +13,7 @@ const {
|
|||
validCreatePackRequest,
|
||||
validCreateQueryRequest,
|
||||
validCreateScheduledQueryRequest,
|
||||
validDestroyQueryRequest,
|
||||
validDestroyPackRequest,
|
||||
validDestroyScheduledQueryRequest,
|
||||
validForgotPasswordRequest,
|
||||
|
|
@ -117,8 +118,8 @@ describe('Kolide - API client', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('#createQuery', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
describe('queries', () => {
|
||||
it('#createQuery', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const description = 'query description';
|
||||
const name = 'query name';
|
||||
|
|
@ -135,6 +136,60 @@ describe('Kolide - API client', () => {
|
|||
})
|
||||
.catch(done);
|
||||
});
|
||||
|
||||
it('#destroyQuery', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const request = validDestroyQueryRequest(bearerToken, queryStub);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.destroyQuery(queryStub)
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
|
||||
it('getQueries', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const request = validGetQueriesRequest(bearerToken);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.getQueries()
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
|
||||
it('#getQuery', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const queryID = 10;
|
||||
const request = validGetQueryRequest(bearerToken, queryID);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.getQuery(queryID)
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
|
||||
it('#runQuery', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const data = { query: 'select * from users', selected: { hosts: [], labels: [] } };
|
||||
const request = validRunQueryRequest(bearerToken, data);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.runQuery(data)
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getConfig', () => {
|
||||
|
|
@ -181,37 +236,6 @@ describe('Kolide - API client', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('#getQueries', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const request = validGetQueriesRequest(bearerToken);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.getQueries()
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getQuery', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const queryID = 10;
|
||||
const request = validGetQueryRequest(bearerToken, queryID);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.getQuery(queryID)
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#createScheduledQuery', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
|
|
@ -456,22 +480,6 @@ describe('Kolide - API client', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('#runQuery', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
const bearerToken = 'valid-bearer-token';
|
||||
const data = { query: 'select * from users', selected: { hosts: [], labels: [] } };
|
||||
const request = validRunQueryRequest(bearerToken, data);
|
||||
|
||||
Kolide.setBearerToken(bearerToken);
|
||||
Kolide.runQuery(data)
|
||||
.then(() => {
|
||||
expect(request.isDone()).toEqual(true);
|
||||
done();
|
||||
})
|
||||
.catch(done);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#setup', () => {
|
||||
it('calls the appropriate endpoint with the correct parameters', (done) => {
|
||||
const formData = {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
import Kolide from '../../../../kolide';
|
||||
import reduxConfig from '../base/reduxConfig';
|
||||
import schemas from '../base/schemas';
|
||||
import Kolide from 'kolide';
|
||||
import reduxConfig from 'redux/nodes/entities/base/reduxConfig';
|
||||
import schemas from 'redux/nodes/entities/base/schemas';
|
||||
|
||||
const { QUERIES: schema } = schemas;
|
||||
|
||||
export default reduxConfig({
|
||||
createFunc: Kolide.createQuery,
|
||||
destroyFunc: Kolide.destroyQuery,
|
||||
entityName: 'queries',
|
||||
loadAllFunc: Kolide.getQueries,
|
||||
loadFunc: Kolide.getQuery,
|
||||
|
|
|
|||
|
|
@ -64,6 +64,16 @@ export const validCreateScheduledQueryRequest = (bearerToken, formData) => {
|
|||
.reply(201, { scheduled_query: scheduledQueryStub });
|
||||
};
|
||||
|
||||
export const validDestroyQueryRequest = (bearerToken, query) => {
|
||||
return nock('http://localhost:8080', {
|
||||
reqHeaders: {
|
||||
Authorization: `Bearer ${bearerToken}`,
|
||||
},
|
||||
})
|
||||
.delete(`/api/v1/kolide/queries/${query.id}`)
|
||||
.reply(200, {});
|
||||
};
|
||||
|
||||
export const validDestroyPackRequest = (bearerToken, pack) => {
|
||||
return nock('http://localhost:8080', {
|
||||
reqHeaders: {
|
||||
|
|
@ -358,6 +368,7 @@ export default {
|
|||
validCreatePackRequest,
|
||||
validCreateQueryRequest,
|
||||
validCreateScheduledQueryRequest,
|
||||
validDestroyQueryRequest,
|
||||
validDestroyPackRequest,
|
||||
validDestroyScheduledQueryRequest,
|
||||
validForgotPasswordRequest,
|
||||
|
|
|
|||
Loading…
Reference in a new issue