fix unit tests

This commit is contained in:
Hazelnoot 2024-10-20 00:49:36 -04:00
parent a6befca845
commit 10d3d9f382
5 changed files with 36 additions and 25 deletions

View file

@ -168,13 +168,13 @@ id: 'aidx'
#outgoingAddressFamily: ipv4 #outgoingAddressFamily: ipv4
# Amount of characters that can be used when writing notes. Longer notes will be rejected. (minimum: 1) # Amount of characters that can be used when writing notes. Longer notes will be rejected. (minimum: 1)
maxNoteLength: 3000 #maxNoteLength: 3000
# Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (minimum: 1) # Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (minimum: 1)
maxRemoteNoteLength: 100000 #maxRemoteNoteLength: 100000
# Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1) # Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1)
maxAltTextLength: 20000 #maxAltTextLength: 20000
# Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1) # Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1)
maxRemoteAltTextLength: 100000 #maxRemoteAltTextLength: 100000
# Proxy for HTTP/HTTPS # Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128 #proxy: http://127.0.0.1:3128

View file

@ -179,6 +179,15 @@ id: 'aidx'
# IP address family used for outgoing request (ipv4, ipv6 or dual) # IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4 #outgoingAddressFamily: ipv4
# Amount of characters that can be used when writing notes. Longer notes will be rejected. (minimum: 1)
#maxNoteLength: 3000
# Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (minimum: 1)
#maxRemoteNoteLength: 100000
# Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1)
#maxAltTextLength: 20000
# Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1)
#maxRemoteAltTextLength: 100000
# Proxy for HTTP/HTTPS # Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128 #proxy: http://127.0.0.1:3128

View file

@ -250,14 +250,14 @@ id: 'aidx'
# IP address family used for outgoing request (ipv4, ipv6 or dual) # IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4 #outgoingAddressFamily: ipv4
# Amount of characters that can be used when writing notes. Longer notes will be rejected. (maximum: 100000, minimum: 1) # Amount of characters that can be used when writing notes. Longer notes will be rejected. (minimum: 1)
maxNoteLength: 3000 #maxNoteLength: 3000
# Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (maximum: 100000, minimum: 1) # Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (minimum: 1)
maxRemoteNoteLength: 100000 #maxRemoteNoteLength: 100000
# Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1) # Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1)
maxAltTextLength: 20000 #maxAltTextLength: 20000
# Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1) # Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1)
maxRemoteAltTextLength: 100000 #maxRemoteAltTextLength: 100000
# Proxy for HTTP/HTTPS # Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128 #proxy: http://127.0.0.1:3128

View file

@ -261,14 +261,14 @@ id: 'aidx'
# IP address family used for outgoing request (ipv4, ipv6 or dual) # IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4 #outgoingAddressFamily: ipv4
# Amount of characters that can be used when writing notes. Longer notes will be rejected. (maximum: 100000, minimum: 1) # Amount of characters that can be used when writing notes. Longer notes will be rejected. (minimum: 1)
maxNoteLength: 3000 #maxNoteLength: 3000
# Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (maximum: 100000, minimum: 1) # Amount of characters that will be saved for remote notes. Longer notes will be truncated to this length. (minimum: 1)
maxRemoteNoteLength: 100000 #maxRemoteNoteLength: 100000
# Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1) # Amount of characters that can be used when writing media descriptions (alt text). Longer descriptions will be rejected. (minimum: 1)
maxAltTextLength: 20000 #maxAltTextLength: 20000
# Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1) # Amount of characters that will be saved for remote media descriptions (alt text). Longer descriptions will be truncated to this length. (minimum: 1)
maxRemoteAltTextLength: 100000 #maxRemoteAltTextLength: 100000
# Proxy for HTTP/HTTPS # Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128 #proxy: http://127.0.0.1:3128

View file

@ -5,15 +5,12 @@
process.env.NODE_ENV = 'test'; process.env.NODE_ENV = 'test';
import { readFile } from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { dirname } from 'node:path';
import { describe, test, expect } from '@jest/globals'; import { describe, test, expect } from '@jest/globals';
import { loadConfig } from '@/config.js';
import { getValidator } from '../../../../../test/prelude/get-api-validator.js'; import { getValidator } from '../../../../../test/prelude/get-api-validator.js';
import { paramDef } from './create.js'; import { paramDef } from './create.js';
const _filename = fileURLToPath(import.meta.url); const config = loadConfig();
const _dirname = dirname(_filename);
const VALID = true; const VALID = true;
const INVALID = false; const INVALID = false;
@ -21,7 +18,12 @@ const INVALID = false;
describe('api:notes/create', () => { describe('api:notes/create', () => {
describe('validation', () => { describe('validation', () => {
const v = getValidator(paramDef); const v = getValidator(paramDef);
const tooLong = readFile(_dirname + '/../../../../../test/resources/misskey.svg', 'utf-8'); const tooLong = (limit: number) => {
const arr: string[] = [''];
arr.length = limit + 1;
arr.fill('a');
return arr.join('');
};
test('reject empty', () => { test('reject empty', () => {
const valid = v({ }); const valid = v({ });
@ -71,8 +73,8 @@ describe('api:notes/create', () => {
.toBe(INVALID); .toBe(INVALID);
}); });
test('over 500 characters cw', async () => { test('over max characters cw', async () => {
expect(v({ text: 'Body', cw: await tooLong })) expect(v({ text: '', cw: tooLong(config.maxNoteLength) }))
.toBe(INVALID); .toBe(INVALID);
}); });
}); });
@ -220,7 +222,7 @@ describe('api:notes/create', () => {
}); });
test('reject poll with too long choice', async () => { test('reject poll with too long choice', async () => {
expect(v({ poll: { choices: [await tooLong, '2'] } })) expect(v({ poll: { choices: [tooLong(config.maxNoteLength), '2'] } }))
.toBe(INVALID); .toBe(INVALID);
}); });