From 4a07bf666d7131902b10eba641bc895dde938921 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 6 Aug 2020 11:57:31 +1000 Subject: [PATCH] Added users cypress tests --- .../integration/{ => api}/Health.spec.js | 0 test/cypress/integration/api/Users.spec.js | 49 ++++++++++++++ test/cypress/support/commands.js | 67 ++----------------- 3 files changed, 56 insertions(+), 60 deletions(-) rename test/cypress/integration/{ => api}/Health.spec.js (100%) create mode 100644 test/cypress/integration/api/Users.spec.js diff --git a/test/cypress/integration/Health.spec.js b/test/cypress/integration/api/Health.spec.js similarity index 100% rename from test/cypress/integration/Health.spec.js rename to test/cypress/integration/api/Health.spec.js diff --git a/test/cypress/integration/api/Users.spec.js b/test/cypress/integration/api/Users.spec.js new file mode 100644 index 00000000..6b7a735a --- /dev/null +++ b/test/cypress/integration/api/Users.spec.js @@ -0,0 +1,49 @@ +/// + +describe('Users endpoints', () => { + let token; + + before(() => { + cy.getToken().then((tok) => { + token = tok; + }); + }); + + it('Should be able to get yourself', function() { + cy.task('backendApiGet', { + token: token, + path: '/api/users/me' + }).then((data) => { + cy.validateSwaggerSchema('get', 200, '/users/{userID}', data); + expect(data).to.have.property('id'); + expect(data.id).to.be.greaterThan(0); + }); + }); + + it('Should be able to get all users', function() { + cy.task('backendApiGet', { + token: token, + path: '/api/users' + }).then((data) => { + cy.validateSwaggerSchema('get', 200, '/users', data); + expect(typeof data).to.be.equal('array'); + expect(data.length).to.be.greaterThan(0); + }); + }); + + it('Should be able to update yourself', function() { + cy.task('backendApiPut', { + token: token, + path: '/api/users/me', + data: { + name: 'changed name' + } + }).then((data) => { + cy.validateSwaggerSchema('put', 200, '/users/{userID}', data); + expect(data).to.have.property('id'); + expect(data.id).to.be.greaterThan(0); + expect(data.name).to.be.equal('changed name'); + }); + }); + +}); diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 15b9ac27..cd61fbd0 100644 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -28,67 +28,14 @@ Cypress.Commands.add('validateSwaggerSchema', (method, path, data) => { }); Cypress.Commands.add('getToken', () => { - cy.task('backendApiGet', { - path: '/api/', - }).then((data) => { - // Check the swagger schema: - cy.task('validateSwaggerSchema', { - endpoint: '/', - method: 'get', - statusCode: 200, - responseSchema: data, - verbose: true, - }).should('equal', null); - - if (!data.result.setup) { - cy.log('Setup = false'); - // create a new user - cy.createInitialUser().then(() => { - return cy.getToken(); - }); - } else { - cy.log('Setup = true'); - // login with existing user - cy.task('backendApiPost', { - path: '/api/tokens', - data: { - type: 'password', - identity: 'jc@jc21.com', - secret: 'changeme' - } - }).then(res => { - cy.wrap(res.result.token); - }); - } - }); -}); - -Cypress.Commands.add('createInitialUser', () => { - return cy.task('backendApiPost', { - path: '/api/users', + // login with existing user + cy.task('backendApiPost', { + path: '/api/tokens', data: { - name: 'Jamie Curnow', - nickname: 'James', - email: 'jc@jc21.com', - roles: [], - is_disabled: false, - auth: { - type: 'password', - secret: 'changeme' - } + identity: "admin@example.com", + secret: "changeme" } - }).then((data) => { - // Check the swagger schema: - cy.task('validateSwaggerSchema', { - endpoint: '/users', - method: 'post', - statusCode: 201, - responseSchema: data, - verbose: true - }).should('equal', null); - - expect(data.result).to.have.property('id'); - expect(data.result.id).to.be.greaterThan(0); - cy.wrap(data.result); + }).then(res => { + cy.wrap(res.result.token); }); });