Browse Source

Added users cypress tests

Jamie Curnow 5 years ago
parent
commit
4a07bf666d

+ 0 - 0
test/cypress/integration/Health.spec.js → test/cypress/integration/api/Health.spec.js


+ 49 - 0
test/cypress/integration/api/Users.spec.js

@@ -0,0 +1,49 @@
+/// <reference types="Cypress" />
+
+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');
+		});
+	});
+
+});

+ 7 - 60
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: '[email protected]',
-					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:       '[email protected]',
-			roles:       [],
-			is_disabled: false,
-			auth:        {
-				type:   'password',
-				secret: 'changeme'
-			}
+			identity: "[email protected]",
+			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);
 	});
 });