mirror of
https://gitdab.com/cadence/out-of-your-element.git
synced 2025-09-09 20:03:04 +02:00
126 lines
4.1 KiB
JavaScript
126 lines
4.1 KiB
JavaScript
const {_memberToStateContent, _memberToPowerLevel} = require("./register-user")
|
|
const {test} = require("supertape")
|
|
const data = require("../../../test/data")
|
|
const mixin = require("@cloudrac3r/mixin-deep")
|
|
const DiscordTypes = require("discord-api-types/v10")
|
|
|
|
test("member2state: without member nick or avatar", async t => {
|
|
t.deepEqual(
|
|
await _memberToStateContent(data.member.kumaccino.user, data.member.kumaccino, data.guild.general.id),
|
|
{
|
|
avatar_url: "mxc://cadence.moe/UpAeIqeclhKfeiZNdIWNcXXL",
|
|
displayname: "kumaccino",
|
|
membership: "join",
|
|
"moe.cadence.ooye.member": {
|
|
avatar: "/avatars/113340068197859328/b48302623a12bc7c59a71328f72ccb39.png?size=1024"
|
|
},
|
|
"uk.half-shot.discord.member": {
|
|
bot: false,
|
|
displayColor: 10206929,
|
|
id: "113340068197859328",
|
|
username: "@kumaccino"
|
|
}
|
|
}
|
|
)
|
|
})
|
|
|
|
test("member2state: with global name, without member nick or avatar", async t => {
|
|
t.deepEqual(
|
|
await _memberToStateContent(data.member.papiophidian.user, data.member.papiophidian, data.guild.general.id),
|
|
{
|
|
avatar_url: "mxc://cadence.moe/JPzSmALLirnIprlSMKohSSoX",
|
|
displayname: "PapiOphidian",
|
|
membership: "join",
|
|
"moe.cadence.ooye.member": {
|
|
avatar: "/avatars/320067006521147393/5fc4ad85c1ea876709e9a7d3374a78a1.png?size=1024"
|
|
},
|
|
"uk.half-shot.discord.member": {
|
|
bot: false,
|
|
displayColor: 1579292,
|
|
id: "320067006521147393",
|
|
username: "@papiophidian"
|
|
}
|
|
}
|
|
)
|
|
})
|
|
|
|
test("member2state: with member nick and avatar", async t => {
|
|
t.deepEqual(
|
|
await _memberToStateContent(data.member.sheep.user, data.member.sheep, data.guild.general.id),
|
|
{
|
|
avatar_url: "mxc://cadence.moe/rfemHmAtcprjLEiPiEuzPhpl",
|
|
displayname: "The Expert's Submarine",
|
|
membership: "join",
|
|
"moe.cadence.ooye.member": {
|
|
avatar: "/guilds/112760669178241024/users/134826546694193153/avatars/38dd359aa12bcd52dd3164126c587f8c.png?size=1024"
|
|
},
|
|
"uk.half-shot.discord.member": {
|
|
bot: false,
|
|
displayColor: null,
|
|
id: "134826546694193153",
|
|
username: "@aprilsong"
|
|
}
|
|
}
|
|
)
|
|
})
|
|
|
|
test("member2power: default to zero if member roles unknown", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, null, data.guild.data_horde, data.channel.saving_the_world)
|
|
t.equal(power, 0)
|
|
})
|
|
|
|
test("member2power: unremarkable = 0", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: []
|
|
}, data.guild.data_horde, data.channel.general)
|
|
t.equal(power, 0)
|
|
})
|
|
|
|
test("member2power: can mention everyone = 20", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: ["684524730274807911"]
|
|
}, data.guild.data_horde, data.channel.general)
|
|
t.equal(power, 20)
|
|
})
|
|
|
|
test("member2power: can send messages in protected channel due to role = 50", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: ["684524730274807911"]
|
|
}, data.guild.data_horde, data.channel.saving_the_world)
|
|
t.equal(power, 50)
|
|
})
|
|
|
|
test("member2power: can send messages in protected channel due to user override = 50", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: []
|
|
}, data.guild.data_horde, mixin({}, data.channel.saving_the_world, {
|
|
permission_overwrites: data.channel.saving_the_world.permission_overwrites.concat({
|
|
type: DiscordTypes.OverwriteType.member,
|
|
id: data.user.clyde_ai.id,
|
|
allow: String(DiscordTypes.PermissionFlagsBits.SendMessages),
|
|
deny: "0"
|
|
})
|
|
}))
|
|
t.equal(power, 50)
|
|
})
|
|
|
|
test("member2power: can kick users = 50", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: ["682789592390281245"]
|
|
}, data.guild.data_horde, data.channel.general)
|
|
t.equal(power, 50)
|
|
})
|
|
|
|
test("member2power: can manage channels = 100", async t => {
|
|
const power = _memberToPowerLevel(data.user.clyde_ai, {
|
|
roles: ["665290147377578005"]
|
|
}, data.guild.data_horde, data.channel.saving_the_world)
|
|
t.equal(power, 100)
|
|
})
|
|
|
|
test("member2power: pathfinder use case", async t => {
|
|
const power = _memberToPowerLevel(data.user.jerassicore, {
|
|
roles: ["1235396773510647810", "1359752622130593802", "1249165855632265267", "1380768596929806356", "1380756348190462015"]
|
|
}, data.guild.pathfinder, data.channel.character_art)
|
|
t.equal(power, 50)
|
|
})
|