Skip to content

Commit

Permalink
add database test
Browse files Browse the repository at this point in the history
  • Loading branch information
chriskapp committed Jul 7, 2016
1 parent 7939669 commit c219c08
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 1 deletion.
2 changes: 1 addition & 1 deletion public/tests/app/connection.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ describe('Connection tests', function() {
expect($('div.alert-success > div').getText()).toEqual('Connection successful updated');
});

it('Delete app', function() {
it('Delete connection', function() {
browser.get('#/connection');

var EC = protractor.ExpectedConditions;
Expand Down
102 changes: 102 additions & 0 deletions public/tests/app/database.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@

describe('Database tests', function() {

it('Create table', function() {
browser.get('#/database');

var EC = protractor.ExpectedConditions;

$('a.btn-primary').click();

browser.wait(EC.visibilityOf($('div.modal-body')), 5000);

element(by.model('table.name')).sendKeys('foobar');

element.all(by.css('button.btn-default')).first().click();
element.all(by.css('button.btn-default')).first().click();
element.all(by.css('button.btn-default')).first().click();

var columns = element.all(by.repeater('column in table.columns'));
columns.get(0).element(by.model('column.name')).clear().sendKeys('id');
columns.get(0).element(by.cssContainingText('option', 'integer')).click();
columns.get(1).element(by.model('column.name')).clear().sendKeys('name');
columns.get(1).element(by.cssContainingText('option', 'string')).click();
columns.get(2).element(by.model('column.name')).clear().sendKeys('content');
columns.get(2).element(by.cssContainingText('option', 'text')).click();
columns.get(3).element(by.model('column.name')).clear().sendKeys('date');
columns.get(3).element(by.cssContainingText('option', 'datetime')).click();

$('button.btn-primary').click();

browser.wait(EC.visibilityOf($('div.alert-success')), 5000);

expect($('div.alert-success > div').getText()).toEqual('Table successful created');
});

it('List table', function() {
browser.get('#/database');

var tables = element.all(by.repeater('table in tables'));
expect(tables.count()).toEqual(1);
expect(tables.get(0).getText()).toEqual('foobar');
});

it('Table update', function() {
browser.get('#/database');

var EC = protractor.ExpectedConditions;

element.all(by.css('a.btn-default')).get(1).click();

browser.wait(EC.visibilityOf($('div.modal-body')), 5000);

expect(element(by.model('table.name')).getAttribute('value')).toEqual('foobar');

var columns = element.all(by.model('column.name'));
expect(columns.count()).toEqual(4);
expect(columns.get(0).getAttribute('value')).toEqual('id');
expect(columns.get(1).getAttribute('value')).toEqual('name');
expect(columns.get(2).getAttribute('value')).toEqual('content');
expect(columns.get(3).getAttribute('value')).toEqual('date');

element.all(by.css('.fusio-options a.btn-default')).get(2).click();

$('button.btn-primary').click();

var queries = element.all(by.repeater('query in response.queries'));
expect(queries.count()).toEqual(1);
expect(queries.get(0).getText()).toEqual('ALTER TABLE foobar DROP content');

$('button.btn-danger').click();

browser.wait(EC.visibilityOf($('div.alert-success')), 5000);

expect($('div.alert-success > div').getText()).toEqual('Table successful updated');

});

it('Table delete', function() {
browser.get('#/database');

var EC = protractor.ExpectedConditions;

element.all(by.css('a.btn-danger')).first().click();

browser.wait(EC.visibilityOf($('div.modal-body')), 5000);

expect(element(by.model('table.name')).getAttribute('value')).toEqual('foobar');

$('button.btn-primary').click();

var queries = element.all(by.repeater('query in response.queries'));
expect(queries.count()).toEqual(1);
expect(queries.get(0).getText()).toEqual('DROP TABLE foobar');

$('button.btn-danger').click();

browser.wait(EC.visibilityOf($('div.alert-success')), 5000);

expect($('div.alert-success > div').getText()).toEqual('Table successful deleted');
});

});
1 change: 1 addition & 0 deletions public/tests/conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ exports.config = {
'app/app.js',
'app/config.js',
'app/connection.js',
'app/database.js',
'app/log.js',
'app/routes.js',
'app/schema.js',
Expand Down

0 comments on commit c219c08

Please sign in to comment.