summaryrefslogtreecommitdiff
path: root/packages/backend/test/utils.ts
diff options
context:
space:
mode:
authorNanashia <nanashia.128@gmail.com>2023-04-12 13:20:16 +0900
committerGitHub <noreply@github.com>2023-04-12 13:20:16 +0900
commit5c3a4a82245db6e841a7f60f48b81ee78b94d68c (patch)
tree109580bc950accf318b531d212bfc31a81421f63 /packages/backend/test/utils.ts
parentfeat(server): Misskey Webでユーザーフレンドリーなエラーペー... (diff)
downloadmisskey-5c3a4a82245db6e841a7f60f48b81ee78b94d68c.tar.gz
misskey-5c3a4a82245db6e841a7f60f48b81ee78b94d68c.tar.bz2
misskey-5c3a4a82245db6e841a7f60f48b81ee78b94d68c.zip
test(backend): Add tests for users (#10546)
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Diffstat (limited to 'packages/backend/test/utils.ts')
-rw-r--r--packages/backend/test/utils.ts39
1 files changed, 35 insertions, 4 deletions
diff --git a/packages/backend/test/utils.ts b/packages/backend/test/utils.ts
index 4f501a8726..809ed2c66c 100644
--- a/packages/backend/test/utils.ts
+++ b/packages/backend/test/utils.ts
@@ -6,6 +6,7 @@ import WebSocket from 'ws';
import fetch, { Blob, File, RequestInit } from 'node-fetch';
import { DataSource } from 'typeorm';
import { JSDOM } from 'jsdom';
+import { DEFAULT_POLICIES } from '@/core/RoleService.js';
import { entities } from '../src/postgres.js';
import { loadConfig } from '../src/config.js';
import type * as misskey from 'misskey-js';
@@ -31,12 +32,12 @@ export type ApiRequest = {
};
export const successfulApiCall = async <T, >(request: ApiRequest, assertion: {
- status: number,
-} = { status: 200 }): Promise<T> => {
+ status?: number,
+} = {}): Promise<T> => {
const { endpoint, parameters, user } = request;
- const { status } = assertion;
const res = await api(endpoint, parameters, user);
- assert.strictEqual(res.status, status, inspect(res.body));
+ const status = assertion.status ?? (res.body == null ? 204 : 200);
+ assert.strictEqual(res.status, status, inspect(res.body, { depth: 5, colors: true }));
return res.body;
};
@@ -188,6 +189,36 @@ export const channel = async (user: any, channel: any = {}): Promise<any> => {
return res.body;
};
+export const role = async (user: any, role: any = {}, policies: any = {}): Promise<any> => {
+ const res = await api('admin/roles/create', {
+ asBadge: false,
+ canEditMembersByModerator: false,
+ color: null,
+ condFormula: {
+ id: 'ebef1684-672d-49b6-ad82-1b3ec3784f85',
+ type: 'isRemote',
+ },
+ description: '',
+ displayOrder: 0,
+ iconUrl: null,
+ isAdministrator: false,
+ isModerator: false,
+ isPublic: false,
+ name: 'New Role',
+ target: 'manual',
+ policies: {
+ ...Object.entries(DEFAULT_POLICIES).map(([k, v]) => [k, {
+ priority: 0,
+ useDefault: true,
+ value: v,
+ }]),
+ ...policies,
+ },
+ ...role,
+ }, user);
+ return res.body;
+};
+
interface UploadOptions {
/** Optional, absolute path or relative from ./resources/ */
path?: string | URL;