|
- import test from 'ava';
- import nock from 'nock';
- import HTTP from '../src/api/http';
- import {TOKEN_KEY} from '../src/api/token';
- import Storage from '../src/api/storage';
- import {LocalStorageMock} from './_helpers';
-
-
- const storage = new Storage(new LocalStorageMock());
- const passwords = new HTTP('passwords', storage);
-
-
- const token = 'ZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFt';
- storage.save({baseURL: 'https://lesspass.com', [TOKEN_KEY]: token});
- /* eslint camelcase: 0 */
- const foo = {
- name: 'foo'
- };
-
- test('should send requests with Authorization header', t => {
- const headers = {reqheaders: {Authorization: `JWT ${token}`}};
- nock('https://lesspass.com', headers).get('/api/passwords/').query(true).reply(200, {});
- return passwords.all().then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should create a foo', t => {
- nock('https://lesspass.com').post('/api/passwords/', foo).reply(201, foo);
- return passwords.create(foo).then(response => {
- const newIncident = response.data;
- t.is(foo.login, newIncident.login);
- });
- });
-
- test('should send requests with Authorization header updated', t => {
- const newToken = 'WV9eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRyd';
- storage.save({baseURL: 'https://lesspass.com', [TOKEN_KEY]: newToken});
- const headers = {reqheaders: {Authorization: `JWT ${newToken}`}};
- nock('https://lesspass.com', headers).get('/api/passwords/').query(true).reply(200, {});
- return passwords.all().then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should get all foo with parameters', t => {
- nock('https://lesspass.com').get('/api/passwords/?limit=100&offset=0&search=query&ordering=-created').reply(200, {});
- return passwords.all({params: {limit: 100, offset: 0, search: 'query', ordering: '-created'}}).then(response => {
- t.is(response.status, 200);
- });
- });
-
-
- const clients = new HTTP('clients', storage);
-
- test('should get all clients', t => {
- nock('https://lesspass.com').get('/api/clients/').reply(200, {});
- return clients.all().then(response => {
- t.is(response.status, 200);
- });
- });
-
-
- test('should get all clients with parameters', t => {
- nock('https://lesspass.com').get('/api/clients/?param1=10¶m2=-created').reply(200, {});
- return clients.all({params: {param1: 10, param2: '-created'}}).then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should get one resource', t => {
- nock('https://lesspass.com').get('/api/clients/c8e4f983-8ffe-b705-4064-d3b7aa4a4782/').reply(200, {});
- return clients.get({id: 'c8e4f983-8ffe-b705-4064-d3b7aa4a4782'}).then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should get one resource with parameters', t => {
- nock('https://lesspass.com').get('/api/clients/c8e4f983-8ffe-b705-4064-d3b7aa4a4782/?param1=10¶m2=-created').reply(200, {});
- return clients.get({id: 'c8e4f983-8ffe-b705-4064-d3b7aa4a4782'}, {params: {param1: 10, param2: '-created'}})
- .then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should create one resource', t => {
- nock('https://lesspass.com').post('/api/clients/', {name: 'resource'}).reply(201, {});
- return clients.create({name: 'resource'}).then(response => {
- t.is(response.status, 201);
- });
- });
-
- test('should create one resource with parameters', t => {
- nock('https://lesspass.com').post('/api/clients/?param1=10¶m2=-created', {name: 'resource'}).reply(201, {});
- return clients.create({name: 'resource'}, {params: {param1: 10, param2: '-created'}}).then(response => {
- t.is(response.status, 201);
- });
- });
-
- test('should update one resource', t => {
- nock('https://lesspass.com').put('/api/clients/c8e4f983-4064-8ffe-b705-d3b7aa4a4782/', {}).reply(200, {});
- return clients.update({id: 'c8e4f983-4064-8ffe-b705-d3b7aa4a4782'}, {}).then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should update one resource with parameters', t => {
- nock('https://lesspass.com').put('/api/clients/2/?param1=10¶m2=-created', {id: '2'}).reply(200, {});
- return clients.update({id: '2'}, {params: {param1: 10, param2: '-created'}}).then(response => {
- t.is(response.status, 200);
- });
- });
-
- test('should remove one resource', t => {
- nock('https://lesspass.com').delete('/api/clients/c8e4f983-8ffe-4064-b705-d3b7aa4a4782/').reply(204);
- return clients.remove({id: 'c8e4f983-8ffe-4064-b705-d3b7aa4a4782'}).then(response => {
- t.is(response.status, 204);
- });
- });
-
- test('should remove one resource with parameters', t => {
- nock('https://lesspass.com').delete('/api/clients/8/?param1=10¶m2=-created').reply(204);
- return clients.remove({id: '8'}, {params: {param1: 10, param2: '-created'}}).then(response => {
- t.is(response.status, 204);
- });
- });
-
- test('should send requests with headers', t => {
- const headers = {Accept: 'application/json, text/javascript, *!/!*;'};
- nock('https://lesspass.com', headers).get('/api/clients/').query(true).reply(200, {});
-
- return clients.all({headers}).then(response => {
- t.is(response.status, 200);
- });
- });
|