这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
dfc722d
move pkey editor to a reusable component
wawhal Mar 6, 2019
3a871ee
move column creator to a separate component
wawhal Mar 7, 2019
5c1f268
move expandable editor to common components
wawhal Mar 7, 2019
d6792ca
make expandable editor generic
wawhal Mar 7, 2019
7b0a96e
using expandable editors for column editting WIP
wawhal Mar 7, 2019
a877ad3
using expandable editors for column editting WIP
wawhal Mar 8, 2019
1b293e5
primary key ui functionality done
wawhal Mar 11, 2019
da393fa
complete PK editors
wawhal Mar 12, 2019
8b74d02
add more reusability to pk editors and column editors
wawhal Mar 12, 2019
84bb865
fix a column comment bug
wawhal Mar 12, 2019
b9bdc9e
merge with master
wawhal Mar 17, 2019
b392476
finish foreign key UI, pending review
wawhal Mar 18, 2019
f4ca428
ui for foreign key complete
wawhal Mar 18, 2019
5436f18
unchange add table state
wawhal Mar 18, 2019
9a46426
add functionality to foreign key create table ui
wawhal Mar 19, 2019
cfd0f6b
add foreign key editors to modify table
wawhal Mar 19, 2019
b4d10a9
foreign key modify WIP
wawhal Mar 19, 2019
b9207ad
modify and remove works. wip editor toggle state
wawhal Mar 19, 2019
9c137c6
wip
wawhal Mar 21, 2019
c060c42
fix typo, comment code
wawhal Mar 21, 2019
854620b
name foreign keys during alter table
wawhal Mar 21, 2019
e9bdd88
finish foreign key modify
wawhal Mar 22, 2019
fe60b71
merge with master; lint
wawhal Mar 22, 2019
dd961fb
fix repeated key bug in fk modify
wawhal Mar 22, 2019
9146d8c
disallow repeating lcols in fk config
wawhal Mar 24, 2019
82e71a7
add tests for create table
wawhal Mar 25, 2019
552c608
update tests for modify and relationships
wawhal Mar 25, 2019
db51c42
merge with upstream
wawhal Mar 25, 2019
c16fafb
remove unnecessary props to expandable editor
wawhal Mar 25, 2019
6aa5c39
fix a bug in insert-browse test
wawhal Mar 25, 2019
6f500a7
fix an invalid data-test in console tests
wawhal Mar 25, 2019
019b6bd
Merge branch 'master' into issue-1707
rikinsk Apr 3, 2019
53cb36b
update rel def
rikinsk Apr 3, 2019
7bc1f97
update rel def
rikinsk Apr 3, 2019
181cb14
update foreign key name
rikinsk Apr 3, 2019
e2ed245
update tooltips + rel def
rikinsk Apr 3, 2019
afe3cfa
fix unique, nullable and col comment bug
wawhal Apr 4, 2019
45c4081
Merge branch 'issue-1707' of github.com:wawhal/graphql-engine into is…
wawhal Apr 4, 2019
84836bc
show complete fk editor while disabling not allowed elements
wawhal Apr 4, 2019
e0c664d
add title for disabled elements
wawhal Apr 4, 2019
7a1915f
change browse tab name
rikinsk Apr 4, 2019
dda2405
refactor delete btn
rikinsk Apr 4, 2019
cf9b5a1
change modify view columns
rikinsk Apr 4, 2019
d7bc32d
change modify view columns
rikinsk Apr 4, 2019
4773ac3
update function permissions note
rikinsk Apr 4, 2019
e7dd561
make pk and fk config bold
wawhal Apr 4, 2019
ae9837f
fix relationship table styles
rikinsk Apr 4, 2019
e1ffa0e
fix relationship table styles
rikinsk Apr 4, 2019
7649c52
fix import
rikinsk Apr 4, 2019
921520c
make untracked sections collapisible
rikinsk Apr 4, 2019
b27adf7
fix tests
rikinsk Apr 4, 2019
fdc34b5
show FK label when editor expanded
wawhal Apr 4, 2019
2be70f8
fix collapsible event propagation
rikinsk Apr 4, 2019
5c7230f
Merge branch 'issue-1707' of github.com:wawhal/graphql-engine into is…
wawhal Apr 4, 2019
59f7e83
add tooltips for violation actions in fks
wawhal Apr 4, 2019
d48b321
remove dead code
wawhal Apr 5, 2019
0a50de1
left align primary key editor content
wawhal Apr 5, 2019
fea6c54
update editor UI
rikinsk Apr 5, 2019
b8fb350
update editor UI
rikinsk Apr 5, 2019
a9345d6
fix editor functionality of fk in add-table
wawhal Apr 5, 2019
51096a8
Merge branch 'issue-1707' of github.com:wawhal/graphql-engine into is…
wawhal Apr 5, 2019
476f91a
handle undefined props in expandable editor
wawhal Apr 5, 2019
d90fae6
boo
rikinsk Apr 5, 2019
a5917fa
Merge branch 'master' into issue-1707
rikinsk Apr 5, 2019
10d3c9f
Merge branch '1707-messed-up' into issue-1707
rikinsk Apr 5, 2019
fc3271f
fix foreign key def
rikinsk Apr 8, 2019
62e3307
avoid styles passing
rikinsk Apr 8, 2019
8a2a10d
add save btn for add fkey
rikinsk Apr 8, 2019
f297bc7
fix overflow issue
rikinsk Apr 8, 2019
00a1471
Merge branch 'master' into issue-1707
rikinsk Apr 8, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion console/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
"jsx-a11y/anchor-is-valid": 0,
"jsx-a11y/lang": 0,
"jsx-a11y/alt-text": 0,
"max-len": 0
"max-len": 0,
"no-continue": 0
},
"plugins": [
"react", "import", "cypress"
Expand Down
82 changes: 55 additions & 27 deletions console/cypress/integration/data/create-table/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,29 +65,6 @@ export const failCTDuplicateColumns = () => {
validateCT(getTableName(0, testName), 'failure');
};

export const failCTDuplicatePrimaryKey = () => {
// Set second column
cy.get(getElementFromAlias('column-1'))
.clear()
.type(getColName(1));
cy.get(getElementFromAlias('col-type-1')).select('serial');
// Set primary key
cy.get(getElementFromAlias('primary-key-select-0')).select('0');
cy.get(getElementFromAlias('primary-key-select-1')).select('0');
cy.on('window:alert', str => {
expect(
str ===
`You key [${getColName(
0
)}] is already present in the current set of primary keys.`
).to.be.true;
});
// Check if the route didn't change
cy.url().should('eq', `${baseUrl}/data/schema/public/table/add`);
// Validate
validateCT(getTableName(0, testName), 'failure');
};

export const failCTWrongDefaultValue = () => {
// Set second column
cy.get(getElementFromAlias('column-1'))
Expand All @@ -110,10 +87,11 @@ export const passCT = () => {
cy.get(getElementFromAlias('column-1'))
.clear()
.type(getColName(1));
cy.get(getElementFromAlias('col-type-1')).select('serial');
cy.get(getElementFromAlias('col-type-1')).select('text');
cy.get(getElementFromAlias('col-default-1')).clear();
// Set primary key
cy.get(getElementFromAlias('primary-key-select-0')).select('0');
cy.get(getElementFromAlias('primary-key-select-1')).select('1');
// Click on create
cy.get(getElementFromAlias('table-create')).click();
cy.wait(10000);
Expand All @@ -127,6 +105,44 @@ export const passCT = () => {
validateCT(getTableName(0, testName), 'success');
};

export const passCTWithFK = () => {
// go to create-table
cy.get(getElementFromAlias('sidebar-add-table')).click();
// Set tablename
cy.get(getElementFromAlias('tableName'))
.clear()
.type(getTableName(1, testName)); // Set first column
cy.get(getElementFromAlias('column-0')).type(getColName(0));
cy.get(getElementFromAlias('col-type-0')).select('serial');
// Set second column
cy.get(getElementFromAlias('column-1')).type(getColName(1));
cy.get(getElementFromAlias('col-type-1')).select('text');
// Set primary key
cy.get(getElementFromAlias('primary-key-select-0')).select('0');
// Set foreign key
cy.get(getElementFromAlias('add-table-edit-fk-0')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-0')).select(
getTableName(0, testName)
);
cy.get(getElementFromAlias('foreign-key-0-lcol-0')).select('0');
cy.get(getElementFromAlias('foreign-key-0-rcol-0')).select(getColName(0));
cy.get(getElementFromAlias('foreign-key-0-lcol-1')).select('1');
cy.get(getElementFromAlias('foreign-key-0-rcol-1')).select(getColName(1));
cy.get(getElementFromAlias('foreign-key-0-onUpdate-cascade')).check();
cy.get(getElementFromAlias('foreign-key-0-onDelete-cascade')).check();
// Click on create
cy.get(getElementFromAlias('table-create')).click();
cy.wait(10000);
// Check if the table got created and navigatied to modify table
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(1, testName)}/modify`
);
cy.get(getElementFromAlias(getTableName(1, testName)));
// Validate
validateCT(getTableName(1, testName), 'success');
};

export const failCTDuplicateTable = () => {
// Visit data page
cy.get(getElementFromAlias('sidebar-add-table')).click();
Expand All @@ -145,7 +161,19 @@ export const failCTDuplicateTable = () => {
};

export const deleteCTTestTable = () => {
// Go to the modify section of the table
// Go to the modify section of the second table
cy.get(getElementFromAlias(`${getTableName(1, testName)}`)).click();
cy.get(getElementFromAlias('table-modify')).click();
// Click on delete
cy.get(getElementFromAlias('delete-table')).click();
// Confirm
cy.on('window:confirm', str => {
expect(str === 'Are you sure?').to.be.true;
return true;
});
cy.wait(5000);
validateCT(getTableName(1, testName), 'failure');
// Go to the modify section of the first table
cy.get(getElementFromAlias(`${getTableName(0, testName)}`)).click();
cy.get(getElementFromAlias('table-modify')).click();
// Click on delete
Expand All @@ -155,8 +183,8 @@ export const deleteCTTestTable = () => {
expect(str === 'Are you sure?').to.be.true;
return true;
});
cy.wait(7000);
// Match the URL
cy.wait(5000);
//Match the URL
cy.url().should('eq', `${baseUrl}/data/schema/public`);
// Validate
validateCT(getTableName(0, testName), 'failure');
Expand Down
3 changes: 2 additions & 1 deletion console/cypress/integration/data/create-table/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
failAddExistingTable,
passAddExistingTable,
deleteCTTestTable,
passCTWithFK,
} from './spec';

const setup = () => {
Expand All @@ -35,9 +36,9 @@ export const runCreateTableTests = () => {
it('Fails to create table without columns', failCTWithoutColumns);
it('Fails to create table without primary key', failCTWithoutPK);
it('Fails to create with duplicate columns', failCTDuplicateColumns);
it('Fails to create with duplicate primary key', failCTDuplicatePrimaryKey);
it('Fails to create with wrong default value', failCTWrongDefaultValue);
it('Successfuly creates table', passCT);
it('Successfuly creates table with primary key', passCTWithFK);
it('Fails to create duplicate table', failCTDuplicateTable);
it('Delete off the test table', deleteCTTestTable);
});
Expand Down
4 changes: 3 additions & 1 deletion console/cypress/integration/data/functions/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@ export const verifyPermissionTab = () => {
`data/schema/public/functions/${getCustomFunctionName(1)}/permissions`
);
cy.wait(5000);
cy.get(getElementFromAlias('custom-function-permission-btn')).should('exist');
cy.get(getElementFromAlias('custom-function-permission-link')).should(
'exist'
);
cy.wait(5000);
};

Expand Down
16 changes: 9 additions & 7 deletions console/cypress/integration/data/insert-browse/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -433,14 +433,16 @@ export const checkViewRelationship = () => {
cy.wait(7000);
validateCT(getTableName(0, testName), 'success');
// Add foreign key
cy.get(getElementFromAlias('edit-someID')).click();
cy.get(getElementFromAlias('foreign-key-checkbox')).check();
cy.get(getElementFromAlias('ref-table')).select(getTableName(0, testName));
cy.get(getElementFromAlias('ref-col')).select(getColName(0));
cy.get(getElementFromAlias('save-button')).click();
cy.wait(1000);
cy.get(getElementFromAlias('modify-table-edit-fk-0')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-0')).select(
getTableName(0, testName)
);
cy.get(getElementFromAlias('foreign-key-0-lcol-0')).select('0');
cy.get(getElementFromAlias('foreign-key-0-rcol-0')).select(getColName(0));
cy.get(getElementFromAlias('modify-table-fk-0-save')).click();
cy.wait(5000);
// Add relationship
cy.get(getElementFromAlias('add-rel-mod')).click();
cy.get(getElementFromAlias('table-relationships')).click();
cy.get(getElementFromAlias('obj-rel-add-0')).click();
cy.get(getElementFromAlias('suggested-rel-name'))
.clear()
Expand Down
56 changes: 35 additions & 21 deletions console/cypress/integration/data/modify/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ export const passMTCreateTable = () => {
'eq',
`${baseUrl}/data/schema/public/tables/${getTableName(0, testName)}/modify`
);

validateCT(getTableName(0, testName), 'success');
};

export const passMTCheckRoute = () => {
// Click on the create table button
cy.get(getElementFromAlias('table-modify')).click();
Expand Down Expand Up @@ -58,19 +56,19 @@ export const passMTRenameTable = () => {
};

export const passMTRenameColumn = () => {
cy.get(getElementFromAlias('edit-id')).click();
cy.get(getElementFromAlias('modify-table-edit-column-0')).click();
cy.get(getElementFromAlias('edit-col-name'))
.clear()
.type(getColName(3));
cy.get(getElementFromAlias('save-button')).click();
cy.wait(2500);
cy.get(getElementFromAlias('modify-table-column-0-save')).click();
cy.wait(5000);
validateColumn(getTableName(0, testName), [getColName(3)], 'success');
cy.get(getElementFromAlias(`edit-${getColName(3)}`)).click();
cy.get(getElementFromAlias('modify-table-edit-column-0')).click();
cy.get(getElementFromAlias('edit-col-name'))
.clear()
.type('id');
cy.get(getElementFromAlias('save-button')).click();
cy.wait(2500);
cy.get(getElementFromAlias('modify-table-column-0-save')).click();
cy.wait(5000);
validateColumn(getTableName(0, testName), ['id'], 'success');
};

Expand Down Expand Up @@ -141,41 +139,57 @@ export const passMTAddColumn = () => {

export const Movetocolumn = () => {
Addcolumnname(getColName(1));
cy.get(getElementFromAlias(`edit-${getColName(1)}`)).click();
cy.get(getElementFromAlias('modify-table-edit-column-1')).click();
};

export const failMCWithWrongDefaultValue = () => {
cy.get(getElementFromAlias(`edit-${getColName(0)}`)).click();
cy.get(getElementFromAlias('modify-table-edit-column-1')).click();
cy.get(getElementFromAlias('edit-col-default')).type('abcd');
cy.get(getElementFromAlias('save-button')).click();
cy.get(getElementFromAlias('modify-table-column-1-save')).click();
};

export const passMCWithRightDefaultValue = () => {
cy.get(getElementFromAlias('edit-col-default'))
.clear()
.type('1234');
cy.get(getElementFromAlias('save-button')).click();
cy.wait(15000);
cy.get(getElementFromAlias('modify-table-column-1-save')).click();
cy.wait(10000);
};

export const passCreateForeignKey = () => {
cy.get(getElementFromAlias('edit-col-unique')).select('True');
cy.get(getElementFromAlias('foreign-key-checkbox')).check();
cy.get(getElementFromAlias('ref-table')).select(getTableName(0, testName));
cy.get(getElementFromAlias('ref-col')).select(getColName(0));
cy.get(getElementFromAlias('save-button')).click();
cy.wait(15000);
cy.get(getElementFromAlias('modify-table-edit-fk-0')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-0')).select(
getTableName(0, testName)
);
cy.get(getElementFromAlias('foreign-key-0-lcol-0')).select('0');
cy.get(getElementFromAlias('foreign-key-0-rcol-0')).select('id');
cy.get(getElementFromAlias('modify-table-fk-0-save')).click();
cy.wait(10000);
};

export const passRemoveForeignKey = () => {
cy.get(getElementFromAlias('remove-constraint-button')).click();
cy.get(getElementFromAlias('modify-table-edit-fk-0')).click();
cy.get(getElementFromAlias('modify-table-fk-0-remove')).click();
cy.wait(10000);
};

export const passModifyPkey = () => {
cy.get(getElementFromAlias('modify-table-edit-pks')).click();
cy.get(getElementFromAlias('primary-key-select-1')).select('1');
cy.get(getElementFromAlias('modify-table-pks-save')).click();
cy.wait(5000);
// TODO
// test disappearance expect
// (cy.get(getElementFromAlias('modify-table-column-1-remove'))).not.to.exist;
cy.get(getElementFromAlias('remove-pk-column-1')).click();
cy.get(getElementFromAlias('modify-table-pks-save')).click();
cy.get(getElementFromAlias('modify-table-close-pks')).click();
};

export const passMTDeleteCol = () => {
// cy.get(getElementFromAlias(`edit-${getColName(0)}`)).click();
// cy.wait(500);
cy.get(getElementFromAlias('remove-button')).click();
cy.get(getElementFromAlias('modify-table-column-1-remove')).click();
cy.on('window:alert', str => {
expect(str === 'Are you sure you want to delete?').to.be.true;
});
Expand Down
2 changes: 2 additions & 0 deletions console/cypress/integration/data/modify/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
passRemoveForeignKey,
passMTRenameTable,
passMTRenameColumn,
passModifyPkey,
} from './spec';

import { testMode } from '../../../helpers/common';
Expand Down Expand Up @@ -47,6 +48,7 @@ export const runModifyTableTests = () => {
it('Pass modify with wrong default value', passMCWithRightDefaultValue);
it('Pass create foreign-key', passCreateForeignKey);
it('Pass remove foreign-key', passRemoveForeignKey);
it('Pass modifying a primary key', passModifyPkey);
it('Delete the column', passMTDeleteCol);
it('Delete Table Cancel', passMTDeleteTableCancel);
it('Delete table', passMTDeleteTable);
Expand Down
56 changes: 29 additions & 27 deletions console/cypress/integration/data/relationships/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,35 @@ export const Createtable = (name, fields) => {

// Select primary key
cy.get(getElementFromAlias('primary-key-select-0')).select('id');

if (name === 'article') {
cy.get(getElementFromAlias('add-table-edit-fk-0')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-0')).select(
'author_table_rt'
);
cy.get(getElementFromAlias('foreign-key-0-lcol-0')).select('3');
cy.get(getElementFromAlias('foreign-key-0-rcol-0')).select('id');
cy.get(getElementFromAlias('foreign-key-0-onUpdate-cascade')).check();
cy.get(getElementFromAlias('foreign-key-0-onDelete-cascade')).check();
} else if (name === 'comment') {
cy.get(getElementFromAlias('add-table-edit-fk-0')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-0')).select(
'author_table_rt'
);
cy.get(getElementFromAlias('foreign-key-0-lcol-0')).select('1');
cy.get(getElementFromAlias('foreign-key-0-rcol-0')).select('id');
cy.get(getElementFromAlias('foreign-key-0-onUpdate-cascade')).check();
cy.get(getElementFromAlias('foreign-key-0-onDelete-cascade')).check();
cy.get(getElementFromAlias('add-table-edit-fk-1')).click();
cy.get(getElementFromAlias('foreign-key-ref-table-1')).select(
'article_table_rt'
);
cy.get(getElementFromAlias('foreign-key-1-lcol-0')).select('2');
cy.get(getElementFromAlias('foreign-key-1-rcol-0')).select('id');
cy.get(getElementFromAlias('foreign-key-1-onUpdate-cascade')).check();
cy.get(getElementFromAlias('foreign-key-1-onDelete-cascade')).check();
}

cy.get(getElementFromAlias('table-create')).click();
cy.wait(15000);
cy.url().should(
Expand Down Expand Up @@ -125,33 +154,6 @@ export const passRTAddManualArrayRel = () => {
);
};

export const passRTAddForeignKey = () => {
cy.get(getElementFromAlias('article_table_rt')).click();
cy.get(getElementFromAlias('table-modify')).click();
cy.get(getElementFromAlias('edit-author_id')).click();
cy.get(getElementFromAlias('foreign-key-checkbox')).check();
cy.get(getElementFromAlias('ref-table')).select('author_table_rt');
cy.get(getElementFromAlias('ref-col')).select('id');
cy.get(getElementFromAlias('save-button')).click();
cy.wait(15000);
cy.get(getElementFromAlias('comment_table_rt')).click();
cy.get(getElementFromAlias('table-modify')).click();
cy.get(getElementFromAlias('edit-article_id')).click();
cy.get(getElementFromAlias('foreign-key-checkbox')).check();
cy.get(getElementFromAlias('ref-table')).select('article_table_rt');
cy.get(getElementFromAlias('ref-col')).select('id');
cy.get(getElementFromAlias('save-button')).click();
cy.wait(15000);
};

export const checkAddManualRelationshipsButton = () => {
cy.get(getElementFromAlias('add-rel-mod')).click();
cy.url().should(
'eq',
`${baseUrl}/data/schema/public/tables/comment_table_rt/relationships`
);
};

export const passRTDeleteRelationships = () => {
delRel('article_table_rt', 'author');
validateColumn(
Expand Down
Loading