Skip to content

Commit

Permalink
testing console tests in the ci (#83)
Browse files Browse the repository at this point in the history
* testing console tests in the ci

* console: making cypress wait for the server to start

* console: fixing failing tests

* console: update failing test

* console: cleaned up modify tests

* console: fixed a failing test for api-explorer
  • Loading branch information
wawhal authored and arvi3411301 committed Jul 11, 2018
1 parent 3f9859b commit 3a085da
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 147 deletions.
16 changes: 8 additions & 8 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ refs:
filters:
branches:
ignore: /^release-v.*/



version: 2
Expand Down Expand Up @@ -142,24 +142,24 @@ jobs:
- attach_workspace:
at: /build
- restore_cache:
key:
key:
console-npm-cache-{{ checksum "console/package.json" }}-{{ checksum "console/package-lock.json" }}
- run:
name: install dependencies
working_directory: console
command: make ci-deps
- save_cache:
key:
key:
console-npm-cache-{{ checksum "console/package.json" }}-{{ checksum "console/package-lock.json" }}
paths:
- console/node_modules
- ~/.npm
- ~/.cache
- *wait_for_postgres
# ignore console test for now
# - run:
# name: test console
# command: .circleci/test-console.sh
- run:
name: test console
command: .circleci/test-console.sh
- run:
name: build console
working_directory: console
Expand Down Expand Up @@ -194,7 +194,7 @@ workflows:
build_and_test:
jobs:
- test_and_build_server: *filter_only_vtags
- test_and_build_cli:
- test_and_build_cli:
<<: *filter_only_vtags
requires:
- test_and_build_server
Expand All @@ -203,7 +203,7 @@ workflows:
requires:
- test_and_build_server
- test_and_build_cli
- deploy:
- deploy:
<<: *filter_only_vtags_dev_release_branches
requires:
- test_and_build_console
7 changes: 2 additions & 5 deletions console/cypress/integration/api-explorer/graphql/spec.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
/* eslint import/prefer-default-export: 0 */

import { baseUrl } from '../../../helpers/dataHelpers';
import { getElementFromAlias } from '../../../helpers/dataHelpers';

export const openAPIExplorer = () => {
//eslint-disable-line
// Open API Explorer
cy.get('a')
.contains('API Explorer')
.click();
cy.get(getElementFromAlias('api-explorer')).click();
cy.wait(3000);
cy.url().should('eq', `${baseUrl}/api-explorer`);
};
7 changes: 5 additions & 2 deletions console/cypress/integration/api-explorer/graphql/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import { openAPIExplorer } from './spec';

import { setMetaData } from '../../validators/validators';
import { testMode } from '../../../helpers/common';

const setup = () => {
describe('Setup route', () => {
Expand All @@ -23,5 +24,7 @@ export const runApiExplorerTests = () => {
});
};

// setup();
// runApiExplorerTests();
if (testMode !== 'cli') {
setup();
runApiExplorerTests();
}
132 changes: 20 additions & 112 deletions console/cypress/integration/data/modify/spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import {
baseUrl,
getTableName,
getColName,
getElementFromAlias,
} from '../../../helpers/dataHelpers';

Expand Down Expand Up @@ -29,17 +30,6 @@ export const passMTCreateTable = () => {
validateCT(getTableName(0, testName), 'success');
};

export const makeid = () => {
let text = '';
const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

for (let i = 0; i < 5; i += 1) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}

return text;
};

export const passMTCheckRoute = () => {
// Click on the create table button
cy.get(getElementFromAlias('table-modify')).click();
Expand All @@ -66,81 +56,33 @@ export const failMTWithoutColName = () => {
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);

validateColumn(getTableName(0, testName), ['something'], 'failure');
validateColumn(getTableName(0, testName), [getColName(2)], 'failure');
};

export const failMTWithoutColType = () => {
cy.get(getElementFromAlias('column-name')).type('something');
cy.get(getElementFromAlias('add-column-button')).click();
// cy.get('.notification-error').click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), ['something'], 'failure');
};

export const failMTDuplicateColumns = () => {
cy.get(getElementFromAlias('column-name')).type('{selectall}{del}');
cy.get(getElementFromAlias('column-name')).type('id');
cy.get(getElementFromAlias('data-type')).select('integer');
cy.get(getElementFromAlias('column-name')).type(getColName(2));
cy.get(getElementFromAlias('add-column-button')).click();
// Check for an alert
cy.wait(2500);
// cy.get('.notification-error').click();
// Check if the route didn't change
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
};

export const Addcolumn = () => {
cy.get(getElementFromAlias('column-name')).type('{selectall}{del}');
const name = makeid();
cy.get(getElementFromAlias('column-name')).type(name);
cy.get(getElementFromAlias('data-type')).select('integer');
cy.get(getElementFromAlias('default-value')).type('{selectall}{del}');
cy.get(getElementFromAlias('nullable-checkbox')).check();
cy.get(getElementFromAlias('add-column-button')).click();
cy.wait(2500);
// cy.get('.notification-success').click();
cy.wait(7000);
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), [name], 'success');
validateColumn(getTableName(0, testName), [getColName(2)], 'failure');
};

export const Addcolumnnullable = () => {
cy.get(getElementFromAlias('column-name')).type('{selectall}{del}');
cy.get(getElementFromAlias('column-name')).type('some');
cy.get(getElementFromAlias('column-name')).type(getColName(3));
cy.get(getElementFromAlias('data-type')).select('Text');
cy.get(getElementFromAlias('nullable-checkbox')).uncheck();
cy.get(getElementFromAlias('add-column-button')).click();
cy.wait(2500);
// cy.get('.notification-error').click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), ['some'], 'failure');
};

export const failMTWrongDefault = () => {
cy.get(getElementFromAlias('column-name')).type('{selectall}{del}');
cy.get(getElementFromAlias('column-name')).type('some');
cy.get(getElementFromAlias('default-value')).type('some');
cy.get(getElementFromAlias('data-type')).select('Integer');
cy.get(getElementFromAlias('nullable-checkbox')).uncheck({ force: true });
cy.get(getElementFromAlias('add-column-button')).click();
cy.wait(2500);
// cy.get('.notification-error').click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), ['some'], 'failure');
validateColumn(getTableName(0, testName), [getColName(3)], 'failure');
};

export const Addcolumnname = name => {
Expand All @@ -150,49 +92,27 @@ export const Addcolumnname = name => {

cy.get(getElementFromAlias('add-column-button')).click();
cy.wait(5000);
// cy.get('.notification-success').click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), [name], 'success');
};

export const passMTAddTwoCols = () => {
Addcolumn();
Addcolumn();
export const passMTAddColumn = () => {
cy.get(getElementFromAlias('column-name')).type('{selectall}{del}');
cy.get(getElementFromAlias('column-name')).type(getColName(0));
cy.get(getElementFromAlias('data-type')).select('integer');
cy.get(getElementFromAlias('add-column-button')).click();
cy.wait(2500);
// cy.get('.notification-success').click();
validateColumn(getTableName(0, testName), [getColName(0)], 'success');
};

export const Movetocolumn = () => {
Addcolumnname('somes');
cy.get(getElementFromAlias('edit-somes')).click();
};

export const passMTChangeColType = () => {
Movetocolumn();
cy.get('.form-horizontal')
.children()
.get('select')
.first()
.select('Text');
cy.get(getElementFromAlias('save-button')).click();
cy.wait(5000);
// cy.get('.notification-success').click();
cy.get('button')
.contains('Close')
.click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), ['somes'], 'success');
Addcolumnname(getColName(1));
cy.get(getElementFromAlias(`edit-${getColName(1)}`)).click();
};

export const passMTDeleteCol = () => {
cy.get(getElementFromAlias('edit-somes')).click();
cy.get('button')
.contains('Remove')
.click();
cy.get(getElementFromAlias(`edit-${getColName(0)}`)).click();
cy.get(getElementFromAlias('remove-button')).click();
cy.on('window:alert', str => {
expect(str === 'Are you sure you want to delete?').to.be.true;
});
Expand All @@ -202,7 +122,7 @@ export const passMTDeleteCol = () => {
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);
validateColumn(getTableName(0, testName), ['somes'], 'failure');
validateColumn(getTableName(0, testName), [getColName(0)], 'failure');
};

export const passMTDeleteTableCancel = () => {
Expand All @@ -224,18 +144,6 @@ export const passMTDeleteTable = () => {
validateCT(getTableName(0, testName), 'failure');
};

export const failMTRemoveNullable = () => {
cy.get(getElementFromAlias('table-insert-rows')).click();
cy.get('input[placeholder = "integer"]').type('{selectall}{del}');
cy.get('input[placeholder="integer"]').type(123);
cy.get(getElementFromAlias('insert-save-button')).click();
cy.get('input[placeholder = "integer"]').type('{selectall}{del}');
cy.get('input[placeholder="integer"]').type(1234);
cy.get(getElementFromAlias('insert-save-button')).click();
cy.get(getElementFromAlias('table-modify')).click();
Addcolumnnullable();
};

export const setValidationMetaData = () => {
setMetaData();
};
Expand Down
13 changes: 2 additions & 11 deletions console/cypress/integration/data/modify/test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint no-unused-vars: 0 */
/* eslint import/prefer-default-export: 0 */

import {
Expand All @@ -7,14 +6,10 @@ import {
passMTCreateTable,
failMTWithoutColName,
failMTWithoutColType,
failMTDuplicateColumns,
passMTAddTwoCols,
passMTAddColumn,
passMTDeleteTableCancel,
passMTDeleteCol,
passMTChangeColType,
passMTDeleteTable,
failMTRemoveNullable,
failMTWrongDefault,
} from './spec';

import { testMode } from '../../../helpers/common';
Expand All @@ -39,11 +34,7 @@ export const runModifyTableTests = () => {
it('Modify table button opens the correct route', passMTCheckRoute);
it('Fails to add column without column name', failMTWithoutColName);
it('Fails without type selected', failMTWithoutColType);
it('Fail duplicate column', failMTDuplicateColumns);
it('Fail for removing nullable after addition', failMTRemoveNullable);
it('Fail with wrong default', failMTWrongDefault);
it('Add 2 Columns', passMTAddTwoCols);
it('Moving to column and change type', passMTChangeColType);
it('Add a column', passMTAddColumn);
it('Delete the column', passMTDeleteCol);
it('Delete Table Cancel', passMTDeleteTableCancel);
it('Delete table', passMTDeleteTable);
Expand Down
2 changes: 1 addition & 1 deletion console/cypress/integration/test_complete.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { runApiExplorerTests } from './api-explorer/graphql/test';
const setup = () => {
it('Visit the index route', () => {
// Wait for the server to start
cy.wait(20000);
cy.wait(60000);
// Visit the index route
cy.visit('/data/schema/public');
cy.wait(7000);
Expand Down
Loading

0 comments on commit 3a085da

Please sign in to comment.