mirror of https://codeberg.org/pzp/pzp-db.git
87 lines
1.8 KiB
JavaScript
87 lines
1.8 KiB
JavaScript
const test = require('node:test')
|
|
const assert = require('node:assert')
|
|
const Keypair = require('pzp-keypair')
|
|
const MsgV4 = require('../../lib/msg-v4')
|
|
|
|
test('MsgV4 domain validation', async (t) => {
|
|
await t.test('Not a string', (t) => {
|
|
const keypair = Keypair.generate('ed25519', 'alice')
|
|
|
|
assert.throws(
|
|
() => {
|
|
MsgV4.create({
|
|
keypair,
|
|
data: { text: 'Hello world!' },
|
|
domain: 123,
|
|
})
|
|
},
|
|
/invalid domain/,
|
|
'not a string'
|
|
)
|
|
})
|
|
|
|
await t.test('"/" character', (t) => {
|
|
const keypair = Keypair.generate('ed25519', 'alice')
|
|
|
|
assert.throws(
|
|
() => {
|
|
MsgV4.create({
|
|
keypair,
|
|
data: { text: 'Hello world!' },
|
|
domain: 'group/init',
|
|
})
|
|
},
|
|
/invalid domain/,
|
|
'invalid domain if contains /'
|
|
)
|
|
})
|
|
|
|
await t.test('"*" character', (t) => {
|
|
const keypair = Keypair.generate('ed25519', 'alice')
|
|
|
|
assert.throws(
|
|
() => {
|
|
MsgV4.create({
|
|
keypair,
|
|
data: { text: 'Hello world!' },
|
|
domain: 'star*',
|
|
})
|
|
},
|
|
/invalid domain/,
|
|
'invalid domain if contains *'
|
|
)
|
|
})
|
|
|
|
await t.test('Too short', (t) => {
|
|
const keypair = Keypair.generate('ed25519', 'alice')
|
|
|
|
assert.throws(
|
|
() => {
|
|
MsgV4.create({
|
|
keypair,
|
|
data: { text: 'Hello world!' },
|
|
domain: 'xy',
|
|
})
|
|
},
|
|
/shorter than 3/,
|
|
'invalid domain if too short'
|
|
)
|
|
})
|
|
|
|
await t.test('too long', (t) => {
|
|
const keypair = Keypair.generate('ed25519', 'alice')
|
|
|
|
assert.throws(
|
|
() => {
|
|
MsgV4.create({
|
|
keypair,
|
|
data: { text: 'Hello world!' },
|
|
domain: 'a'.repeat(120),
|
|
})
|
|
},
|
|
/100\+ characters long/,
|
|
'invalid domain if too long'
|
|
)
|
|
})
|
|
})
|