matrix-user-swap/tests/input/direct_messages_merge.json5
2024-12-04 23:54:34 -08:00

128 lines
3.7 KiB
Text

// Simplest case of migrating m.direct, where the new user doesn't have a
// m.direct event so no merge logic is necessary.
{
"rooms": {
// User A has three DMs
// One DM that both old and new users are in
"!dm-1-with-user-a:example.com": [
{
"type": "m.room.member",
"state_key": "@old:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@new:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@user-a:example.com",
"content": {
"membership": "join"
}
}
],
// One with only old user, which the new user will join in migration
"!dm-2-with-user-a:example.com": [
{
"type": "m.room.member",
"state_key": "@old:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@user-a:example.com",
"content": {
"membership": "join"
}
}
],
// And one with only the new user
"!dm-3-with-user-a:example.com": [
{
"type": "m.room.member",
"state_key": "@new:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@user-a:example.com",
"content": {
"membership": "join"
}
}
],
// A old user only DM with user B.
"!dm-with-user-b:example.com": [
{
"type": "m.room.member",
"state_key": "@old:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@user-a:example.com",
"content": {
"membership": "join"
}
}
],
// A new user only DM with user C.
"!dm-with-user-c:example.com": [
{
"type": "m.room.member",
"state_key": "@old:example.com",
"content": {
"membership": "join"
}
},
{
"type": "m.room.member",
"state_key": "@user-a:example.com",
"content": {
"membership": "join"
}
}
]
},
"old_user": {
"user_id": "@old:example.com",
"global_account_data": {
"m.direct": {
"@user-a:example.com": [
"!dm-1-with-user-a:example.com",
"!dm-2-with-user-a:example.com"
],
"@user-b:example.com": [ "!dm-with-user-b:example.com" ]
}
}
},
"new_user": {
"user_id": "@new:example.com",
"global_account_data": {
"m.direct": {
"@user-a:example.com": [
"!dm-1-with-user-a:example.com",
"!dm-3-with-user-a:example.com"
],
"@user-c:example.com": [ "!dm-with-user-c:example.com" ]
}
}
}
}