Johann150
38786b6999
Some checks failed
ci/woodpecker/push/build Pipeline failed
ci/woodpecker/push/lint-foundkey-js Pipeline failed
ci/woodpecker/push/test unknown status
ci/woodpecker/push/lint-backend Pipeline failed
ci/woodpecker/push/lint-client Pipeline failed
ci/woodpecker/push/lint-sw Pipeline failed
This allows to get rid of the special loader for ts files. There is no need for the test files to be written in TypeScript, plain JavaScript should be fine for this purpose.
83 lines
2 KiB
JavaScript
83 lines
2 KiB
JavaScript
process.env.NODE_ENV = 'test';
|
|
|
|
import * as assert from 'assert';
|
|
import * as childProcess from 'child_process';
|
|
import { async, signup, request, post, react, uploadFile, startServer, shutdownServer } from './utils.mjs';
|
|
|
|
describe('API', function() {
|
|
this.timeout(20*60*1000);
|
|
|
|
let p;
|
|
let alice, bob, carol;
|
|
|
|
before(async () => {
|
|
p = await startServer();
|
|
alice = await signup({ username: 'alice' });
|
|
bob = await signup({ username: 'bob' });
|
|
carol = await signup({ username: 'carol' });
|
|
});
|
|
|
|
after(async () => {
|
|
await shutdownServer(p);
|
|
});
|
|
|
|
describe('General validation', () => {
|
|
it('wrong type', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
string: 42,
|
|
});
|
|
assert.strictEqual(res.status, 400);
|
|
}));
|
|
|
|
it('missing require param', async(async () => {
|
|
const res = await request('/test', {
|
|
string: 'a',
|
|
});
|
|
assert.strictEqual(res.status, 400);
|
|
}));
|
|
|
|
it('invalid misskey:id (empty string)', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
id: '',
|
|
});
|
|
assert.strictEqual(res.status, 400);
|
|
}));
|
|
|
|
it('valid misskey:id', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
id: '8wvhjghbxu',
|
|
});
|
|
assert.strictEqual(res.status, 200);
|
|
}));
|
|
|
|
it('default value', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
string: 'a',
|
|
});
|
|
assert.strictEqual(res.status, 200);
|
|
assert.strictEqual(res.body.default, 'hello');
|
|
}));
|
|
|
|
it('can set null even if it has default value', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
nullableDefault: null,
|
|
});
|
|
assert.strictEqual(res.status, 200);
|
|
assert.strictEqual(res.body.nullableDefault, null);
|
|
}));
|
|
|
|
it('cannot set undefined if it has default value', async(async () => {
|
|
const res = await request('/test', {
|
|
required: true,
|
|
nullableDefault: undefined,
|
|
});
|
|
assert.strictEqual(res.status, 200);
|
|
assert.strictEqual(res.body.nullableDefault, 'hello');
|
|
}));
|
|
});
|
|
});
|