forked from tsai/budibase
3 changed files with 802 additions and 5 deletions
@ -0,0 +1,726 @@ |
|||||
|
export const SOME_TABLES = [ |
||||
|
{ |
||||
|
"type": "table", |
||||
|
"views": {}, |
||||
|
"name": "Guest", |
||||
|
"schema": { |
||||
|
"Auto ID": { |
||||
|
"name": "Auto ID", |
||||
|
"type": "number", |
||||
|
"subtype": "autoID", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"lastID": 1 |
||||
|
}, |
||||
|
"Created By": { |
||||
|
"name": "Created By", |
||||
|
"type": "link", |
||||
|
"subtype": "createdBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Created By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Created At": { |
||||
|
"name": "Created At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "createdAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Updated By": { |
||||
|
"name": "Updated By", |
||||
|
"type": "link", |
||||
|
"subtype": "updatedBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Updated By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Updated At": { |
||||
|
"name": "Updated At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "updatedAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Name": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Guest", |
||||
|
"name": "Name" |
||||
|
}, |
||||
|
"Episode": { |
||||
|
"name": "Episode", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Guest", |
||||
|
"relationshipType": "one-to-many" |
||||
|
} |
||||
|
}, |
||||
|
"primaryDisplay": "Name", |
||||
|
"indexes": [], |
||||
|
"_id": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a", |
||||
|
"_rev": "10-27f034bf50ec3e2f180d8f96db1f0f31" |
||||
|
}, |
||||
|
{ |
||||
|
"type": "table", |
||||
|
"views": {}, |
||||
|
"name": "Sponsors", |
||||
|
"schema": { |
||||
|
"Auto ID": { |
||||
|
"name": "Auto ID", |
||||
|
"type": "number", |
||||
|
"subtype": "autoID", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"lastID": 1 |
||||
|
}, |
||||
|
"Created By": { |
||||
|
"name": "Created By", |
||||
|
"type": "link", |
||||
|
"subtype": "createdBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Sponsors-Created By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Created At": { |
||||
|
"name": "Created At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "createdAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Updated By": { |
||||
|
"name": "Updated By", |
||||
|
"type": "link", |
||||
|
"subtype": "updatedBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Sponsors-Updated By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Updated At": { |
||||
|
"name": "Updated At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "updatedAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Name": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Sponsors", |
||||
|
"name": "Name" |
||||
|
}, |
||||
|
"Spot": { |
||||
|
"type": "longform", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Sponsors", |
||||
|
"name": "Spot" |
||||
|
}, |
||||
|
"Episode": { |
||||
|
"name": "Episode", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Sponsors", |
||||
|
"relationshipType": "many-to-many" |
||||
|
} |
||||
|
}, |
||||
|
"primaryDisplay": "Name", |
||||
|
"indexes": [], |
||||
|
"_id": "ta_7fd0fa15edd54e0f91a47f50b7577281", |
||||
|
"_rev": "7-de89b81e21ae4b3f65a6b655144fe097" |
||||
|
}, |
||||
|
{ |
||||
|
"type": "table", |
||||
|
"views": {}, |
||||
|
"name": "Episode", |
||||
|
"schema": { |
||||
|
"Auto ID": { |
||||
|
"name": "Auto ID", |
||||
|
"type": "number", |
||||
|
"subtype": "autoID", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"lastID": 1 |
||||
|
}, |
||||
|
"Created By": { |
||||
|
"name": "Created By", |
||||
|
"type": "link", |
||||
|
"subtype": "createdBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Episode-Created By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Created At": { |
||||
|
"name": "Created At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "createdAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Updated By": { |
||||
|
"name": "Updated By", |
||||
|
"type": "link", |
||||
|
"subtype": "updatedBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Episode-Updated By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Updated At": { |
||||
|
"name": "Updated At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "updatedAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Summary": { |
||||
|
"type": "longform", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Summary" |
||||
|
}, |
||||
|
"Author": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Author" |
||||
|
}, |
||||
|
"Published": { |
||||
|
"type": "boolean", |
||||
|
"constraints": { |
||||
|
"type": "boolean", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Published" |
||||
|
}, |
||||
|
"Guest": { |
||||
|
"type": "link", |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Guest", |
||||
|
"relationshipType": "many-to-one", |
||||
|
"tableId": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a" |
||||
|
}, |
||||
|
"Title": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Title" |
||||
|
}, |
||||
|
"Show Notes": { |
||||
|
"type": "longform", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Show Notes" |
||||
|
}, |
||||
|
"Sponsors": { |
||||
|
"type": "link", |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Sponsors", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"tableId": "ta_7fd0fa15edd54e0f91a47f50b7577281" |
||||
|
}, |
||||
|
"Number": { |
||||
|
"type": "number", |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Number" |
||||
|
}, |
||||
|
"Audio": { |
||||
|
"type": "attachment", |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Episode", |
||||
|
"name": "Audio" |
||||
|
} |
||||
|
}, |
||||
|
"indexes": [], |
||||
|
"primaryDisplay": "Author", |
||||
|
"_id": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"_rev": "13-9d70dee825154a9df5c22e1d39bf269c" |
||||
|
}, |
||||
|
{ |
||||
|
"type": "table", |
||||
|
"views": {}, |
||||
|
"name": "Users", |
||||
|
"schema": { |
||||
|
"email": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"email": true, |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": true |
||||
|
}, |
||||
|
"fieldName": "email", |
||||
|
"name": "email" |
||||
|
}, |
||||
|
"roleId": { |
||||
|
"fieldName": "roleId", |
||||
|
"name": "roleId", |
||||
|
"type": "options", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"presence": false, |
||||
|
"inclusion": [ |
||||
|
"ADMIN", |
||||
|
"POWER", |
||||
|
"BASIC", |
||||
|
"PUBLIC", |
||||
|
"BUILDER" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"status": { |
||||
|
"fieldName": "status", |
||||
|
"name": "status", |
||||
|
"type": "options", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"presence": false, |
||||
|
"inclusion": [ |
||||
|
"active", |
||||
|
"inactive" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"Episode-Created By": { |
||||
|
"name": "Episode-Created By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Created By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
}, |
||||
|
"Episode-Updated By": { |
||||
|
"name": "Episode-Updated By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Updated By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
}, |
||||
|
"Guest-Created By": { |
||||
|
"name": "Guest-Created By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a", |
||||
|
"fieldName": "Created By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
}, |
||||
|
"Guest-Updated By": { |
||||
|
"name": "Guest-Updated By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a", |
||||
|
"fieldName": "Updated By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
}, |
||||
|
"Sponsors-Created By": { |
||||
|
"name": "Sponsors-Created By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_7fd0fa15edd54e0f91a47f50b7577281", |
||||
|
"fieldName": "Created By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
}, |
||||
|
"Sponsors-Updated By": { |
||||
|
"name": "Sponsors-Updated By", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_7fd0fa15edd54e0f91a47f50b7577281", |
||||
|
"fieldName": "Updated By", |
||||
|
"relationshipType": "many-to-many", |
||||
|
"autocolumn": true |
||||
|
} |
||||
|
}, |
||||
|
"primaryDisplay": "email", |
||||
|
"_id": "ta_users", |
||||
|
"_rev": "67-1833e6a0028c100633e31788fe958a62" |
||||
|
} |
||||
|
] |
||||
|
|
||||
|
export const SAVE_TABLES_RESPONSE = { |
||||
|
"type": "table", |
||||
|
"_id": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a", |
||||
|
"views": {}, |
||||
|
"name": "Guest", |
||||
|
"schema": { |
||||
|
"Auto ID": { |
||||
|
"name": "Auto ID", |
||||
|
"type": "number", |
||||
|
"subtype": "autoID", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"lastID": 1 |
||||
|
}, |
||||
|
"Created By": { |
||||
|
"name": "Created By", |
||||
|
"type": "link", |
||||
|
"subtype": "createdBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Created By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Created At": { |
||||
|
"name": "Created At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "createdAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Updated By": { |
||||
|
"name": "Updated By", |
||||
|
"type": "link", |
||||
|
"subtype": "updatedBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Updated By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Updated At": { |
||||
|
"name": "Updated At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "updatedAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Episode": { |
||||
|
"name": "Episode", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Guest", |
||||
|
"relationshipType": "one-to-many" |
||||
|
}, |
||||
|
"Names": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Guest", |
||||
|
"name": "Names" |
||||
|
} |
||||
|
}, |
||||
|
"primaryDisplay": "Names", |
||||
|
"indexes": [], |
||||
|
"_rev": "11-7c153edbc6d7c43821cfd5ed526266cf" |
||||
|
} |
||||
|
|
||||
|
export const A_TABLE = { |
||||
|
"type": "table", |
||||
|
"views": {}, |
||||
|
"name": "Guest", |
||||
|
"schema": { |
||||
|
"Auto ID": { |
||||
|
"name": "Auto ID", |
||||
|
"type": "number", |
||||
|
"subtype": "autoID", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "number", |
||||
|
"presence": false, |
||||
|
"numericality": { |
||||
|
"greaterThanOrEqualTo": "", |
||||
|
"lessThanOrEqualTo": "" |
||||
|
} |
||||
|
}, |
||||
|
"lastID": 1 |
||||
|
}, |
||||
|
"Created By": { |
||||
|
"name": "Created By", |
||||
|
"type": "link", |
||||
|
"subtype": "createdBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Created By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Created At": { |
||||
|
"name": "Created At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "createdAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Updated By": { |
||||
|
"name": "Updated By", |
||||
|
"type": "link", |
||||
|
"subtype": "updatedBy", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "array", |
||||
|
"presence": false |
||||
|
}, |
||||
|
"tableId": "ta_users", |
||||
|
"fieldName": "Guest-Updated By", |
||||
|
"relationshipType": "many-to-many" |
||||
|
}, |
||||
|
"Updated At": { |
||||
|
"name": "Updated At", |
||||
|
"type": "datetime", |
||||
|
"subtype": "updatedAt", |
||||
|
"icon": "ri-magic-line", |
||||
|
"autocolumn": true, |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": {}, |
||||
|
"presence": false, |
||||
|
"datetime": { |
||||
|
"latest": "", |
||||
|
"earliest": "" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Episode": { |
||||
|
"name": "Episode", |
||||
|
"type": "link", |
||||
|
"tableId": "ta_d4bf541ce0d84b16a1a8e0a060e5f7f7", |
||||
|
"fieldName": "Guest", |
||||
|
"relationshipType": "one-to-many" |
||||
|
}, |
||||
|
"Names": { |
||||
|
"type": "string", |
||||
|
"constraints": { |
||||
|
"type": "string", |
||||
|
"length": { |
||||
|
"maximum": "" |
||||
|
}, |
||||
|
"presence": false |
||||
|
}, |
||||
|
"fieldName": "Guest", |
||||
|
"name": "Names" |
||||
|
} |
||||
|
}, |
||||
|
"primaryDisplay": "Names", |
||||
|
"indexes": [], |
||||
|
"_id": "ta_3c78cffe33664ca9bfb6b2b6cb3ee55a", |
||||
|
"_rev": "10-27f034bf50ec3e2f180d8f96db1f0f31", |
||||
|
"_rename": { |
||||
|
"old": "Name", |
||||
|
"updated": "Names" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,75 @@ |
|||||
|
import { get } from 'svelte/store' |
||||
|
import api from 'builderStore/api' |
||||
|
|
||||
|
jest.mock('builderStore/api'); |
||||
|
|
||||
|
import { SOME_TABLES, SAVE_TABLES_RESPONSE, A_TABLE } from './fixtures/tables' |
||||
|
|
||||
|
import { createTablesStore } from "../tables" |
||||
|
import { views } from '../views' |
||||
|
|
||||
|
describe("Tables Store", () => { |
||||
|
let store = createTablesStore() |
||||
|
|
||||
|
beforeEach(async () => { |
||||
|
api.get.mockReturnValue({ json: () => SOME_TABLES}) |
||||
|
await store.init() |
||||
|
}) |
||||
|
|
||||
|
it("Initialises correctly", async () => { |
||||
|
expect(get(store)).toEqual({ list: SOME_TABLES, selected: {}, draft: {}}) |
||||
|
}) |
||||
|
|
||||
|
it("fetches all the tables", async () => { |
||||
|
api.get.mockReturnValue({ json: () => SOME_TABLES}) |
||||
|
|
||||
|
await store.fetch() |
||||
|
expect(get(store)).toEqual({ list: SOME_TABLES, selected: {}, draft: {}}) |
||||
|
}) |
||||
|
|
||||
|
it("selects a table", async () => { |
||||
|
const tableToSelect = SOME_TABLES[0] |
||||
|
await store.select(tableToSelect) |
||||
|
|
||||
|
expect(get(store).selected).toEqual(tableToSelect) |
||||
|
expect(get(store).draft).toEqual(tableToSelect) |
||||
|
}) |
||||
|
|
||||
|
it("selecting without a param resets the selected property", async () => { |
||||
|
await store.select() |
||||
|
|
||||
|
expect(get(store).draft).toEqual({}) |
||||
|
}) |
||||
|
|
||||
|
it("selecting a table updates the view store", async () => { |
||||
|
const tableToSelect = SOME_TABLES[0] |
||||
|
await store.select(tableToSelect) |
||||
|
|
||||
|
expect(get(store).selected).toEqual(tableToSelect) |
||||
|
expect(get(views).selected).toEqual({ name: `all_${tableToSelect._id}` }) |
||||
|
}) |
||||
|
|
||||
|
it("saving a table also selects it", async () => { |
||||
|
api.post.mockReturnValue({ json: () => SAVE_TABLES_RESPONSE}) |
||||
|
|
||||
|
await store.save(A_TABLE) |
||||
|
|
||||
|
expect(get(store).selected).toEqual(SAVE_TABLES_RESPONSE) |
||||
|
}) |
||||
|
|
||||
|
it("saving the table returns a response", async () => { |
||||
|
api.post.mockReturnValue({ json: () => SAVE_TABLES_RESPONSE}) |
||||
|
|
||||
|
const response = await store.save(A_TABLE) |
||||
|
|
||||
|
expect(response).toEqual(SAVE_TABLES_RESPONSE) |
||||
|
}) |
||||
|
it("deleting a table removes it from the store", async () => { |
||||
|
api.delete.mockReturnValue({status: 200, message: `Table deleted.`}) |
||||
|
|
||||
|
await store.delete(A_TABLE) |
||||
|
expect(get(store).list).toEqual(expect.not.arrayContaining([A_TABLE])) |
||||
|
}) |
||||
|
|
||||
|
// TODO: Write tests for saving and deleting fields
|
||||
|
}) |
||||
Loading…
Reference in new issue