adds tables store tests
This commit is contained in:
parent
71dc4938da
commit
9bdfe8336d
|
@ -5,11 +5,7 @@ import api from "builderStore/api"
|
|||
|
||||
|
||||
export function createTablesStore() {
|
||||
const store = writable({
|
||||
list: [],
|
||||
selected: {},
|
||||
draft: {},
|
||||
})
|
||||
const store = writable({})
|
||||
const { subscribe, update, set } = store
|
||||
|
||||
async function fetch() {
|
||||
|
|
|
@ -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