-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
arlen22
committed
Jan 9, 2025
1 parent
26d73c0
commit 1ec60ed
Showing
3 changed files
with
192 additions
and
190 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,225 +6,226 @@ tags: [[$:/tags/test-spec]] | |
Tests the SQL tiddler database layer | ||
\*/ | ||
/// <reference types="@types/jest" /> | ||
if($tw.node) { | ||
(function(){ | ||
|
||
/*jslint node: true, browser: true */ | ||
/*global $tw: false */ | ||
"use strict"; | ||
|
||
describe("SQL tiddler database with node built-in sqlite", function() { | ||
runSqlDatabaseTests("node"); | ||
describe("SQL tiddler database with node built-in sqlite", function () { | ||
void runSqlDatabaseTests("node").catch(console.error); | ||
}); | ||
|
||
describe("SQL tiddler database with node-sqlite3-wasm", function() { | ||
runSqlDatabaseTests("wasm"); | ||
describe("SQL tiddler database with node-sqlite3-wasm", function () { | ||
void runSqlDatabaseTests("wasm").catch(console.error); | ||
}); | ||
|
||
describe("SQL tiddler database with better-sqlite3", function() { | ||
runSqlDatabaseTests("better"); | ||
describe("SQL tiddler database with better-sqlite3", function () { | ||
void runSqlDatabaseTests("better").catch(console.error); | ||
}); | ||
|
||
function runSqlDatabaseTests(engine) { | ||
async function runSqlDatabaseTests(engine) { | ||
// Create and initialise the tiddler store | ||
var SqlTiddlerDatabase = require("$:/plugins/tiddlywiki/multiwikiserver/store/sql-tiddler-database.js").SqlTiddlerDatabase; | ||
const sqlTiddlerDatabase = new SqlTiddlerDatabase({ | ||
engine: engine | ||
}); | ||
sqlTiddlerDatabase.createTables(); | ||
await sqlTiddlerDatabase.createTables(); | ||
// Tear down | ||
afterAll(function() { | ||
afterAll(async function() { | ||
// Close the database | ||
sqlTiddlerDatabase.close(); | ||
await sqlTiddlerDatabase.close(); | ||
}); | ||
// Run tests | ||
it("should save and retrieve tiddlers using engine: " + engine, function() { | ||
it("should save and retrieve tiddlers using engine: " + engine, async function() { | ||
// Create bags and recipes | ||
expect(sqlTiddlerDatabase.createBag("bag-alpha","Bag alpha")).toEqual(1); | ||
expect(sqlTiddlerDatabase.createBag("bag-beta","Bag beta")).toEqual(2); | ||
expect(sqlTiddlerDatabase.createBag("bag-gamma","Bag gamma")).toEqual(3); | ||
expect(sqlTiddlerDatabase.listBags()).toEqual([ | ||
expect(await sqlTiddlerDatabase.createBag("bag-alpha","Bag alpha")).toEqual(1); | ||
expect(await sqlTiddlerDatabase.createBag("bag-beta","Bag beta")).toEqual(2); | ||
expect(await sqlTiddlerDatabase.createBag("bag-gamma","Bag gamma")).toEqual(3); | ||
expect(await sqlTiddlerDatabase.listBags()).toEqual([ | ||
{ bag_name: 'bag-alpha', bag_id: 1, accesscontrol: '', description: "Bag alpha" }, | ||
{ bag_name: 'bag-beta', bag_id: 2, accesscontrol: '', description: "Bag beta" }, | ||
{ bag_name: 'bag-gamma', bag_id: 3, accesscontrol: '', description: "Bag gamma" } | ||
]); | ||
expect(sqlTiddlerDatabase.createRecipe("recipe-rho",["bag-alpha","bag-beta"],"Recipe rho")).toEqual(1); | ||
expect(sqlTiddlerDatabase.createRecipe("recipe-sigma",["bag-alpha","bag-gamma"],"Recipe sigma")).toEqual(2); | ||
expect(sqlTiddlerDatabase.createRecipe("recipe-tau",["bag-alpha"],"Recipe tau")).toEqual(3); | ||
expect(sqlTiddlerDatabase.createRecipe("recipe-upsilon",["bag-alpha","bag-gamma","bag-beta"],"Recipe upsilon")).toEqual(4); | ||
expect(sqlTiddlerDatabase.listRecipes()).toEqual([ | ||
expect(await sqlTiddlerDatabase.createRecipe("recipe-rho",["bag-alpha","bag-beta"],"Recipe rho")).toEqual(1); | ||
expect(await sqlTiddlerDatabase.createRecipe("recipe-sigma",["bag-alpha","bag-gamma"],"Recipe sigma")).toEqual(2); | ||
expect(await sqlTiddlerDatabase.createRecipe("recipe-tau",["bag-alpha"],"Recipe tau")).toEqual(3); | ||
expect(await sqlTiddlerDatabase.createRecipe("recipe-upsilon",["bag-alpha","bag-gamma","bag-beta"],"Recipe upsilon")).toEqual(4); | ||
expect(await sqlTiddlerDatabase.listRecipes()).toEqual([ | ||
{ recipe_name: 'recipe-rho', recipe_id: 1, bag_names: ["bag-alpha","bag-beta"], description: "Recipe rho", owner_id: null }, | ||
{ recipe_name: 'recipe-sigma', recipe_id: 2, bag_names: ["bag-alpha","bag-gamma"], description: "Recipe sigma", owner_id: null }, | ||
{ recipe_name: 'recipe-tau', recipe_id: 3, bag_names: ["bag-alpha"], description: "Recipe tau", owner_id: null }, | ||
{ recipe_name: 'recipe-upsilon', recipe_id: 4, bag_names: ["bag-alpha","bag-gamma","bag-beta"], description: "Recipe upsilon", owner_id: null } | ||
]); | ||
expect(sqlTiddlerDatabase.getRecipeBags("recipe-rho")).toEqual(["bag-alpha","bag-beta"]); | ||
expect(sqlTiddlerDatabase.getRecipeBags("recipe-sigma")).toEqual(["bag-alpha","bag-gamma"]); | ||
expect(sqlTiddlerDatabase.getRecipeBags("recipe-tau")).toEqual(["bag-alpha"]); | ||
expect(sqlTiddlerDatabase.getRecipeBags("recipe-upsilon")).toEqual(["bag-alpha","bag-gamma","bag-beta"]); | ||
expect(await sqlTiddlerDatabase.getRecipeBags("recipe-rho")).toEqual(["bag-alpha","bag-beta"]); | ||
expect(await sqlTiddlerDatabase.getRecipeBags("recipe-sigma")).toEqual(["bag-alpha","bag-gamma"]); | ||
expect(await sqlTiddlerDatabase.getRecipeBags("recipe-tau")).toEqual(["bag-alpha"]); | ||
expect(await sqlTiddlerDatabase.getRecipeBags("recipe-upsilon")).toEqual(["bag-alpha","bag-gamma","bag-beta"]); | ||
// Save tiddlers | ||
expect(sqlTiddlerDatabase.saveBagTiddler({title: "Another Tiddler",text: "I'm in alpha",tags: "one two three"},"bag-alpha")).toEqual({ | ||
expect(await sqlTiddlerDatabase.saveBagTiddler({title: "Another Tiddler",text: "I'm in alpha",tags: "one two three"},"bag-alpha")).toEqual({ | ||
tiddler_id: 1 | ||
}); | ||
expect(sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in alpha as well",tags: "one two three"},"bag-alpha")).toEqual({ | ||
expect(await sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in alpha as well",tags: "one two three"},"bag-alpha")).toEqual({ | ||
tiddler_id: 2 | ||
}); | ||
expect(sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in beta",tags: "four five six"},"bag-beta")).toEqual({ | ||
expect(await sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in beta",tags: "four five six"},"bag-beta")).toEqual({ | ||
tiddler_id: 3 | ||
}); | ||
expect(sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in gamma",tags: "seven eight nine"},"bag-gamma")).toEqual({ | ||
expect(await sqlTiddlerDatabase.saveBagTiddler({title: "Hello There",text: "I'm in gamma",tags: "seven eight nine"},"bag-gamma")).toEqual({ | ||
tiddler_id: 4 | ||
}); | ||
// Verify what we've got | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ | ||
{ title: 'Another Tiddler', tiddler_id: 1, bag_name: 'bag-alpha', is_deleted: 0 }, | ||
{ title: 'Hello There', tiddler_id: 3, bag_name: 'bag-beta', is_deleted: 0 } | ||
]); | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ | ||
{ title: 'Another Tiddler', tiddler_id: 1, bag_name: 'bag-alpha', is_deleted: 0 }, | ||
{ title: 'Hello There', tiddler_id: 4, bag_name: 'bag-gamma', is_deleted: 0 } | ||
]); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-rho").tiddler).toEqual({ title: "Hello There", text: "I'm in beta", tags: "four five six" }); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Missing Tiddler","recipe-rho")).toEqual(null); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Another Tiddler","recipe-rho").tiddler).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-sigma").tiddler).toEqual({ title: "Hello There", text: "I'm in gamma", tags: "seven eight nine" }); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Another Tiddler","recipe-sigma").tiddler).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-upsilon").tiddler).toEqual({title: "Hello There",text: "I'm in beta",tags: "four five six"}); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-rho"))?.tiddler).toEqual({ title: "Hello There", text: "I'm in beta", tags: "four five six" }); | ||
expect(await sqlTiddlerDatabase.getRecipeTiddler("Missing Tiddler","recipe-rho")).toEqual(null); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("Another Tiddler","recipe-rho"))?.tiddler).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-sigma"))?.tiddler).toEqual({ title: "Hello There", text: "I'm in gamma", tags: "seven eight nine" }); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("Another Tiddler","recipe-sigma"))?.tiddler).toEqual({ title: "Another Tiddler", text: "I'm in alpha", tags: "one two three" }); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-upsilon"))?.tiddler).toEqual({title: "Hello There",text: "I'm in beta",tags: "four five six"}); | ||
// Delete a tiddlers to ensure the underlying tiddler in the recipe shows through | ||
sqlTiddlerDatabase.deleteTiddler("Hello There","bag-beta"); | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ | ||
await sqlTiddlerDatabase.deleteTiddler("Hello There","bag-beta"); | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ | ||
{ title: 'Another Tiddler', tiddler_id: 1, bag_name: 'bag-alpha', is_deleted: 0 }, | ||
{ title: 'Hello There', tiddler_id: 2, bag_name: 'bag-alpha', is_deleted: 0 } | ||
]); | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ | ||
{ title: 'Another Tiddler', tiddler_id: 1, bag_name: 'bag-alpha', is_deleted: 0 }, | ||
{ title: 'Hello There', tiddler_id: 4, bag_name: 'bag-gamma', is_deleted: 0 } | ||
]); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-beta")).toEqual(null); | ||
sqlTiddlerDatabase.deleteTiddler("Another Tiddler","bag-alpha"); | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ { title: 'Hello There', tiddler_id: 2, bag_name: 'bag-alpha', is_deleted: 0 } ]); | ||
expect(sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ { title: 'Hello There', tiddler_id: 4, bag_name: 'bag-gamma', is_deleted: 0 } ]); | ||
expect(await sqlTiddlerDatabase.getRecipeTiddler("Hello There","recipe-beta")).toEqual(null); | ||
await sqlTiddlerDatabase.deleteTiddler("Another Tiddler","bag-alpha"); | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-rho")).toEqual([ { title: "Hello There", tiddler_id: 2, bag_name: "bag-alpha", is_deleted: 0 } ]); | ||
expect(await sqlTiddlerDatabase.getRecipeTiddlers("recipe-sigma")).toEqual([ { title: "Hello There", tiddler_id: 4, bag_name: "bag-gamma", is_deleted: 0 } ]); | ||
// Save a recipe tiddler | ||
expect(sqlTiddlerDatabase.saveRecipeTiddler({title: "More", text: "None"},"recipe-rho")).toEqual({tiddler_id: 7, bag_name: 'bag-beta'}); | ||
expect(sqlTiddlerDatabase.getRecipeTiddler("More","recipe-rho").tiddler).toEqual({title: "More", text: "None"}); | ||
expect(await sqlTiddlerDatabase.saveRecipeTiddler({title: "More", text: "None"},"recipe-rho")).toEqual({tiddler_id: 7, bag_name: "bag-beta"}); | ||
expect((await sqlTiddlerDatabase.getRecipeTiddler("More","recipe-rho"))?.tiddler).toEqual({title: "More", text: "None"}); | ||
}); | ||
|
||
it("should manage users correctly", function() { | ||
it("should manage users correctly", async function() { | ||
console.log("should manage users correctly") | ||
// Create users | ||
const userId1 = sqlTiddlerDatabase.createUser("john_doe", "[email protected]", "pass123"); | ||
const userId2 = sqlTiddlerDatabase.createUser("jane_doe", "[email protected]", "pass123"); | ||
const userId1 = await sqlTiddlerDatabase.createUser("john_doe", "[email protected]", "pass123"); | ||
const userId2 = await sqlTiddlerDatabase.createUser("jane_doe", "[email protected]", "pass123"); | ||
|
||
// Retrieve users | ||
const user1 = sqlTiddlerDatabase.getUser(userId1); | ||
const user1 = await sqlTiddlerDatabase.getUser(userId1); | ||
expect(user1.user_id).toBe(userId1); | ||
expect(user1.username).toBe("john_doe"); | ||
expect(user1.email).toBe("[email protected]"); | ||
expect(user1.created_at).toMatch(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/); // Match timestamp format | ||
expect(user1.last_login).toBeNull(); | ||
|
||
// Update user | ||
sqlTiddlerDatabase.updateUser(userId1, "john_updated", "[email protected]"); | ||
expect(sqlTiddlerDatabase.getUser(userId1).username).toBe("john_updated"); | ||
expect(sqlTiddlerDatabase.getUser(userId1).email).toBe("[email protected]"); | ||
await sqlTiddlerDatabase.updateUser(userId1, "john_updated", "[email protected]"); | ||
expect((await sqlTiddlerDatabase.getUser(userId1)).username).toBe("john_updated"); | ||
expect((await sqlTiddlerDatabase.getUser(userId1)).email).toBe("[email protected]"); | ||
|
||
// List users | ||
const users = sqlTiddlerDatabase.listUsers(); | ||
const users = await sqlTiddlerDatabase.listUsers(); | ||
expect(users.length).toBe(2); | ||
expect(users[0].username).toBe("jane_doe"); | ||
expect(users[1].username).toBe("john_updated"); | ||
|
||
// Delete user | ||
sqlTiddlerDatabase.deleteUser(userId2); | ||
// expect(sqlTiddlerDatabase.getUser(userId2)).toBe(null || undefined); | ||
await sqlTiddlerDatabase.deleteUser(userId2); | ||
// expect(await sqlTiddlerDatabase.getUser(userId2)).toBe(null || undefined); | ||
}); | ||
|
||
it("should manage groups correctly", function() { | ||
it("should manage groups correctly", async function() { | ||
console.log("should manage groups correctly") | ||
// Create groups | ||
const groupId1 = sqlTiddlerDatabase.createGroup("Editors", "Can edit content"); | ||
const groupId2 = sqlTiddlerDatabase.createGroup("Viewers", "Can view content"); | ||
const groupId1 = await sqlTiddlerDatabase.createGroup("Editors", "Can edit content"); | ||
const groupId2 = await sqlTiddlerDatabase.createGroup("Viewers", "Can view content"); | ||
|
||
// Retrieve groups | ||
expect(sqlTiddlerDatabase.getGroup(groupId1)).toEqual({ | ||
expect(await sqlTiddlerDatabase.getGroup(groupId1)).toEqual({ | ||
group_id: groupId1, | ||
group_name: "Editors", | ||
description: "Can edit content" | ||
}); | ||
|
||
// Update group | ||
sqlTiddlerDatabase.updateGroup(groupId1, "Super Editors", "Can edit all content"); | ||
expect(sqlTiddlerDatabase.getGroup(groupId1).group_name).toBe("Super Editors"); | ||
expect(sqlTiddlerDatabase.getGroup(groupId1).description).toBe("Can edit all content"); | ||
await sqlTiddlerDatabase.updateGroup(groupId1, "Super Editors", "Can edit all content"); | ||
expect((await sqlTiddlerDatabase.getGroup(groupId1)).group_name).toBe("Super Editors"); | ||
expect((await sqlTiddlerDatabase.getGroup(groupId1)).description).toBe("Can edit all content"); | ||
|
||
// List groups | ||
const groups = sqlTiddlerDatabase.listGroups(); | ||
const groups = await sqlTiddlerDatabase.listGroups(); | ||
expect(groups.length).toBe(2); | ||
expect(groups[0].group_name).toBe("Super Editors"); | ||
expect(groups[1].group_name).toBe("Viewers"); | ||
|
||
// Delete group | ||
sqlTiddlerDatabase.deleteGroup(groupId2); | ||
// expect(sqlTiddlerDatabase.getGroup(groupId2)).toBe(null || undefined); | ||
await sqlTiddlerDatabase.deleteGroup(groupId2); | ||
// expect(await sqlTiddlerDatabase.getGroup(groupId2)).toBe(null || undefined); | ||
}); | ||
|
||
|
||
it("should manage roles correctly", function() { | ||
it("should manage roles correctly", async function() { | ||
console.log("should manage roles correctly") | ||
// Create roles | ||
const roleId1 = sqlTiddlerDatabase.createRole("Admin" + Date.now(), "Full access"); | ||
const roleId2 = sqlTiddlerDatabase.createRole("Editor" + Date.now(), "Can edit content"); | ||
const roleId1 = await sqlTiddlerDatabase.createRole("Admin" + Date.now(), "Full access"); | ||
const roleId2 = await sqlTiddlerDatabase.createRole("Editor" + Date.now(), "Can edit content"); | ||
|
||
// Retrieve roles | ||
expect(sqlTiddlerDatabase.getRole(roleId1)).toEqual({ | ||
expect(await sqlTiddlerDatabase.getRole(roleId1)).toEqual({ | ||
role_id: roleId1, | ||
role_name: jasmine.stringMatching(/^Admin\d+$/), | ||
description: "Full access" | ||
}); | ||
|
||
// Update role | ||
sqlTiddlerDatabase.updateRole(roleId1, "Super Admin" + Date.now(), "God-like powers"); | ||
expect(sqlTiddlerDatabase.getRole(roleId1).role_name).toMatch(/^Super Admin\d+$/); | ||
expect(sqlTiddlerDatabase.getRole(roleId1).description).toBe("God-like powers"); | ||
await sqlTiddlerDatabase.updateRole(roleId1, "Super Admin" + Date.now(), "God-like powers"); | ||
expect((await sqlTiddlerDatabase.getRole(roleId1)).role_name).toMatch(/^Super Admin\d+$/); | ||
expect((await sqlTiddlerDatabase.getRole(roleId1)).description).toBe("God-like powers"); | ||
|
||
// List roles | ||
const roles = sqlTiddlerDatabase.listRoles(); | ||
const roles = await sqlTiddlerDatabase.listRoles(); | ||
expect(roles.length).toBeGreaterThan(0); | ||
// expect(roles[0].role_name).toMatch(/^Editor\d+$/); | ||
// expect(roles[1].role_name).toMatch(/^Super Admin\d+$/); | ||
|
||
// Delete role | ||
sqlTiddlerDatabase.deleteRole(roleId2); | ||
// expect(sqlTiddlerDatabase.getRole(roleId2)).toBeUndefined(); | ||
await sqlTiddlerDatabase.deleteRole(roleId2); | ||
// expect(await sqlTiddlerDatabase.getRole(roleId2)).toBeUndefined(); | ||
}); | ||
|
||
it("should manage permissions correctly", function() { | ||
it("should manage permissions correctly", async function() { | ||
console.log("should manage permissions correctly") | ||
// Create permissions | ||
const permissionId1 = sqlTiddlerDatabase.createPermission("read_tiddlers" + Date.now(), "Can read tiddlers"); | ||
const permissionId2 = sqlTiddlerDatabase.createPermission("write_tiddlers" + Date.now(), "Can write tiddlers"); | ||
const permissionId1 = await sqlTiddlerDatabase.createPermission("read_tiddlers" + Date.now(), "Can read tiddlers"); | ||
const permissionId2 = await sqlTiddlerDatabase.createPermission("write_tiddlers" + Date.now(), "Can write tiddlers"); | ||
|
||
// Retrieve permissions | ||
expect(sqlTiddlerDatabase.getPermission(permissionId1)).toEqual({ | ||
expect(await sqlTiddlerDatabase.getPermission(permissionId1)).toEqual({ | ||
permission_id: permissionId1, | ||
permission_name: jasmine.stringMatching(/^read_tiddlers\d+$/), | ||
description: "Can read tiddlers" | ||
}); | ||
|
||
// Update permission | ||
sqlTiddlerDatabase.updatePermission(permissionId1, "read_all_tiddlers" + Date.now(), "Can read all tiddlers"); | ||
expect(sqlTiddlerDatabase.getPermission(permissionId1).permission_name).toMatch(/^read_all_tiddlers\d+$/); | ||
expect(sqlTiddlerDatabase.getPermission(permissionId1).description).toBe("Can read all tiddlers"); | ||
await sqlTiddlerDatabase.updatePermission(permissionId1, "read_all_tiddlers" + Date.now(), "Can read all tiddlers"); | ||
expect((await sqlTiddlerDatabase.getPermission(permissionId1)).permission_name).toMatch(/^read_all_tiddlers\d+$/); | ||
expect((await sqlTiddlerDatabase.getPermission(permissionId1)).description).toBe("Can read all tiddlers"); | ||
|
||
// List permissions | ||
const permissions = sqlTiddlerDatabase.listPermissions(); | ||
const permissions = await sqlTiddlerDatabase.listPermissions(); | ||
expect(permissions.length).toBeGreaterThan(0); | ||
expect(permissions[0].permission_name).toMatch(/^read_all_tiddlers\d+$/); | ||
expect(permissions[1].permission_name).toMatch(/^write_tiddlers\d+$/); | ||
|
||
// Delete permission | ||
sqlTiddlerDatabase.deletePermission(permissionId2); | ||
// expect(sqlTiddlerDatabase.getPermission(permissionId2)).toBeUndefined(); | ||
await sqlTiddlerDatabase.deletePermission(permissionId2); | ||
// expect(await sqlTiddlerDatabase.getPermission(permissionId2)).toBeUndefined(); | ||
}); | ||
} | ||
|
||
|
Oops, something went wrong.