forked from cadence/out-of-your-element
refactor kstate, add stub user syncing function
This commit is contained in:
parent
4d8b74f61f
commit
f418d51e55
6 changed files with 181 additions and 143 deletions
94
matrix/kstate.test.js
Normal file
94
matrix/kstate.test.js
Normal file
|
@ -0,0 +1,94 @@
|
|||
const {kstateToState, stateToKState, diffKState, kstateStripConditionals} = require("./kstate")
|
||||
const {test} = require("supertape")
|
||||
|
||||
test("kstate strip: strips false conditions", t => {
|
||||
t.deepEqual(kstateStripConditionals({
|
||||
a: {$if: false, value: 2},
|
||||
b: {value: 4}
|
||||
}), {
|
||||
b: {value: 4}
|
||||
})
|
||||
})
|
||||
|
||||
test("kstate strip: keeps true conditions while removing $if", t => {
|
||||
t.deepEqual(kstateStripConditionals({
|
||||
a: {$if: true, value: 2},
|
||||
b: {value: 4}
|
||||
}), {
|
||||
a: {value: 2},
|
||||
b: {value: 4}
|
||||
})
|
||||
})
|
||||
|
||||
test("kstate2state: general", t => {
|
||||
t.deepEqual(kstateToState({
|
||||
"m.room.name/": {name: "test name"},
|
||||
"m.room.member/@cadence:cadence.moe": {membership: "join"}
|
||||
}), [
|
||||
{
|
||||
type: "m.room.name",
|
||||
state_key: "",
|
||||
content: {
|
||||
name: "test name"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "m.room.member",
|
||||
state_key: "@cadence:cadence.moe",
|
||||
content: {
|
||||
membership: "join"
|
||||
}
|
||||
}
|
||||
])
|
||||
})
|
||||
|
||||
test("state2kstate: general", t => {
|
||||
t.deepEqual(stateToKState([
|
||||
{
|
||||
type: "m.room.name",
|
||||
state_key: "",
|
||||
content: {
|
||||
name: "test name"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "m.room.member",
|
||||
state_key: "@cadence:cadence.moe",
|
||||
content: {
|
||||
membership: "join"
|
||||
}
|
||||
}
|
||||
]), {
|
||||
"m.room.name/": {name: "test name"},
|
||||
"m.room.member/@cadence:cadence.moe": {membership: "join"}
|
||||
})
|
||||
})
|
||||
|
||||
test("diffKState: detects edits", t => {
|
||||
t.deepEqual(
|
||||
diffKState({
|
||||
"m.room.name/": {name: "test name"},
|
||||
"same/": {a: 2}
|
||||
}, {
|
||||
"m.room.name/": {name: "edited name"},
|
||||
"same/": {a: 2}
|
||||
}),
|
||||
{
|
||||
"m.room.name/": {name: "edited name"}
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
test("diffKState: detects new properties", t => {
|
||||
t.deepEqual(
|
||||
diffKState({
|
||||
"m.room.name/": {name: "test name"},
|
||||
}, {
|
||||
"m.room.name/": {name: "test name"},
|
||||
"new/": {a: 2}
|
||||
}),
|
||||
{
|
||||
"new/": {a: 2}
|
||||
}
|
||||
)
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue