wip: roles store test
This commit is contained in:
parent
996e4bf9b1
commit
32e493921b
|
@ -3,7 +3,7 @@ import api from "builderStore/api"
|
||||||
|
|
||||||
|
|
||||||
export function createRolesStore() {
|
export function createRolesStore() {
|
||||||
const { subscribe, set } = writable([])
|
const { subscribe, update, set } = writable([])
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subscribe,
|
subscribe,
|
||||||
|
@ -12,7 +12,10 @@ export function createRolesStore() {
|
||||||
},
|
},
|
||||||
delete: async role => {
|
delete: async role => {
|
||||||
const response = await api.delete(`/api/roles/${role._id}/${role._rev}`)
|
const response = await api.delete(`/api/roles/${role._id}/${role._rev}`)
|
||||||
set(await getRoles())
|
update(state => {
|
||||||
|
state = state.filter(existing => existing._id !== role._id)
|
||||||
|
return state
|
||||||
|
})
|
||||||
return response
|
return response
|
||||||
},
|
},
|
||||||
save: async role => {
|
save: async role => {
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
export const ROLES = [
|
||||||
|
{
|
||||||
|
"name": "Test",
|
||||||
|
"permissionId": "admin",
|
||||||
|
"inherits": "ADMIN",
|
||||||
|
"_id": "role_04681b7e71914a0aa53e09a5bea3584f",
|
||||||
|
"_rev": "1-179c71ea61d7fd987306b84b6d64b00e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "ADMIN",
|
||||||
|
"name": "Admin",
|
||||||
|
"permissionId": "admin",
|
||||||
|
"inherits": "POWER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "POWER",
|
||||||
|
"name": "Power",
|
||||||
|
"permissionId": "power",
|
||||||
|
"inherits": "BASIC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "BASIC",
|
||||||
|
"name": "Basic",
|
||||||
|
"permissionId": "write",
|
||||||
|
"inherits": "PUBLIC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "PUBLIC",
|
||||||
|
"name": "Public",
|
||||||
|
"permissionId": "public"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,34 @@
|
||||||
|
import { get } from 'svelte/store'
|
||||||
|
import api from 'builderStore/api'
|
||||||
|
|
||||||
|
jest.mock('builderStore/api');
|
||||||
|
|
||||||
|
import { createRolesStore } from "../roles"
|
||||||
|
import { ROLES } from './fixtures/roles'
|
||||||
|
|
||||||
|
describe("Roles Store", () => {
|
||||||
|
let store = createRolesStore()
|
||||||
|
|
||||||
|
beforeEach( async() => {
|
||||||
|
store = createRolesStore()
|
||||||
|
})
|
||||||
|
|
||||||
|
it("fetches roles from backend", async () => {
|
||||||
|
api.get.mockReturnValue({ json: () => ROLES})
|
||||||
|
await store.fetch()
|
||||||
|
|
||||||
|
expect(api.get).toBeCalledWith("/api/roles")
|
||||||
|
expect(get(store)).toEqual(ROLES)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("deletes a role", async () => {
|
||||||
|
api.get.mockReturnValue({ json: () => ROLES})
|
||||||
|
await store.fetch()
|
||||||
|
|
||||||
|
const {_id, _rev} = ROLES[0]
|
||||||
|
api.delete.mockReturnValue({status: 200, message: `Role deleted.`})
|
||||||
|
await store.delete(`/api/roles/${_id}/${_rev}`)
|
||||||
|
|
||||||
|
expect(get(store)).toEqual(ROLES)
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in New Issue