1
import { expect, describe, test, vi } from 'vitest';
2
import { getAccountabilityForRole } from './get-accountability-for-role.js';
4
vi.mock('./get-permissions', () => ({
5
getPermissions: vi.fn().mockReturnValue([]),
8
function mockDatabase() {
9
const self: Record<string, any> = {
10
select: vi.fn(() => self),
11
from: vi.fn(() => self),
12
where: vi.fn(() => self),
19
describe('getAccountabilityForRole', async () => {
20
test('no role', async () => {
21
const result = await getAccountabilityForRole(null, {
24
database: vi.fn() as any,
27
expect(result).toStrictEqual({
36
test('system role', async () => {
37
const result = await getAccountabilityForRole('system', {
40
database: vi.fn() as any,
43
expect(result).toStrictEqual({
52
test('get role from database', async () => {
53
const db = mockDatabase();
55
db['first'].mockReturnValue({
56
admin_access: 'not true',
60
const result = await getAccountabilityForRole('123-456', {
66
expect(result).toStrictEqual({
75
test('database invalid role', async () => {
76
const db = mockDatabase();
77
db['first'].mockReturnValue(false);
80
getAccountabilityForRole('456-789', {
85
).rejects.toThrow('Configured role "456-789" isn\'t a valid role ID or doesn\'t exist.');