import test from 'ava'; import nock from 'nock'; import Passwords from '../src/api/password'; const token = 'ZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFt'; const config = {baseURL: 'https://lesspass.com', token: token}; const headers = {reqheaders: {Authorization: `JWT ${token}`}}; test('Passwords.create', t => { const password = {login: 'text@example.org'}; nock('https://lesspass.com').post('/api/passwords/', password).reply(201, {...password, id: '1'}); return Passwords.create(password, config).then(response => { const passwordCreated = response.data; t.is(passwordCreated.id, '1'); t.is(passwordCreated.login, password.login); }); }); test('Passwords.create set Authorization header', t => { const password = {login: 'text@example.org'}; nock('https://lesspass.com', headers).post('/api/passwords/', password).query(true).reply(201, { id: '1', ...password }); return Passwords.create(password, config).then(response => { const passwordCreated = response.data; t.is(passwordCreated.id, '1'); t.is(passwordCreated.login, password.login); }); }); test('Passwords.all', t => { nock('https://lesspass.com', headers).get('/api/passwords/').query(true).reply(200, {}); return Passwords.all(config).then(response => { t.is(response.status, 200); }); }); test('Passwords.get', t => { nock('https://lesspass.com', headers).get('/api/passwords/c8e4f983-8ffe-b705-4064-d3b7aa4a4782/').query(true).reply(200, {}); return Passwords.read({id: 'c8e4f983-8ffe-b705-4064-d3b7aa4a4782'}, config).then(response => { t.is(response.status, 200); }); }); test('Passwords.update', t => { const password = {id: 'c8e4f983-4064-8ffe-b705-d3b7aa4a4782', login: 'test@example.org'}; nock('https://lesspass.com', headers).put('/api/passwords/c8e4f983-4064-8ffe-b705-d3b7aa4a4782/', password).query(true).reply(200, {}); return Passwords.update(password, config).then(response => { t.is(response.status, 200); }); }); test('Passwords.delete', t => { nock('https://lesspass.com', headers).delete('/api/passwords/c8e4f983-8ffe-4064-b705-d3b7aa4a4782/').query(true).reply(204); return Passwords.delete({id: 'c8e4f983-8ffe-4064-b705-d3b7aa4a4782'}, config).then(response => { t.is(response.status, 204); }); });