Add tests for all room privacy levels

This commit is contained in:
Cadence Ember 2023-10-13 00:51:38 +13:00
parent a1710af542
commit 1ad1c6b525
3 changed files with 32 additions and 1 deletions

View file

@ -5,7 +5,34 @@ const {kstateStripConditionals} = require("../../matrix/kstate")
const {test} = require("supertape")
const testData = require("../../test/data")
test("channel2room: general", async t => {
const passthrough = require("../../passthrough")
const {db} = passthrough
test("channel2room: discoverable privacy room", async t => {
db.prepare("UPDATE guild_space SET privacy_level = 2").run()
t.deepEqual(
kstateStripConditionals(await channelToKState(testData.channel.general, testData.guild.general).then(x => x.channelKState)),
Object.assign({}, testData.room.general, {
"m.room.guest_access/": {guest_access: "forbidden"},
"m.room.join_rules/": {join_rule: "public"},
"m.room.history_visibility/": {history_visibility: "world_readable"}
})
)
})
test("channel2room: linkable privacy room", async t => {
db.prepare("UPDATE guild_space SET privacy_level = 1").run()
t.deepEqual(
kstateStripConditionals(await channelToKState(testData.channel.general, testData.guild.general).then(x => x.channelKState)),
Object.assign({}, testData.room.general, {
"m.room.guest_access/": {guest_access: "forbidden"},
"m.room.join_rules/": {join_rule: "public"}
})
)
})
test("channel2room: invite-only privacy room", async t => {
db.prepare("UPDATE guild_space SET privacy_level = 0").run()
t.deepEqual(
kstateStripConditionals(await channelToKState(testData.channel.general, testData.guild.general).then(x => x.channelKState)),
testData.room.general

View file

@ -44,6 +44,9 @@ module.exports = {
"m.room.power_levels/": {
events: {
"m.room.avatar": 0
},
users: {
"@test_auto_invite:example.org": 100
}
},
"chat.schildi.hide_ui/read_receipts": {hidden: true},

View file

@ -14,6 +14,7 @@ const db = new sqlite(":memory:")
const reg = require("../matrix/read-registration")
reg.ooye.server_origin = "https://matrix.cadence.moe" // so that tests will pass even when hard-coded
reg.ooye.invite = ["@test_auto_invite:example.org"]
const sync = new HeatSync({watchFS: false})