Update Healer Man server
This commit is contained in:
1 parent
f90ba7d989
commit
189b94d6b7
51 files changed
+3448
-154
No files matched your search
@@ -320,6 +320,37 @@ test("creates online groups through invitations and transfers leadership when th
|
||||
assert.deepEqual(transferred.group.members.map((member) => member.username), ["GroupHealer"]);
|
||||
}));
|
||||
|
||||
test("keeps RoM and WoW characters in separate online groups", () => withDatabase(async (database) => {
|
||||
const leaderAuth = await database.register("SourceLeader", "group-pass");
|
||||
const memberAuth = await database.register("SourceMember", "member-pass");
|
||||
const leader = database.authenticate(leaderAuth.token);
|
||||
const member = database.authenticate(memberAuth.token);
|
||||
database.inviteOnlineGroupMember(leader, member.username);
|
||||
const invite = database.onlineGroupState(member.id).invitations[0];
|
||||
database.respondToOnlineGroupInvite(member.id, invite.id, true);
|
||||
|
||||
const wowCharacter = { id: "wow-priest", name: "Wow Priest", classId: "priest", categoryId: "wow", level: 20 };
|
||||
const romCharacter = { id: "rom-priest", name: "RoM Priest", classId: "rom-priest", categoryId: "rom", level: 20 };
|
||||
database.updateOnlineGroupMember(leader.id, wowCharacter, "healer");
|
||||
assert.throws(() => database.updateOnlineGroupMember(member.id, romCharacter, "healer"),
|
||||
(error) => error instanceof GameDatabaseError && error.code === "mixed_group_sources");
|
||||
assert.equal(database.onlineGroupState(member.id).group.members[1].character, null);
|
||||
|
||||
database.updateOnlineGroupMember(leader.id, romCharacter, "healer");
|
||||
assert.throws(() => database.updateOnlineGroupMember(member.id, wowCharacter, "healer"),
|
||||
(error) => error instanceof GameDatabaseError && error.code === "mixed_group_sources");
|
||||
database.updateOnlineGroupMember(member.id, { ...romCharacter, id: "rom-mage", name: "RoM Mage", classId: "rom-mage" }, "damage");
|
||||
assert.throws(() => database.startOnlineGroupActivity(leader.id, {
|
||||
type: "dungeon", contentId: "randomized-bite-sized-stormwind-stockade", fillWithAi: true, partySize: 5,
|
||||
}), (error) => error instanceof GameDatabaseError && error.code === "group_source_incompatible");
|
||||
const started = database.startOnlineGroupActivity(leader.id, {
|
||||
type: "dungeon", contentId: "wailing-caverns", fillWithAi: true, partySize: 5,
|
||||
});
|
||||
assert.equal(started.group.activity.partySize, 2);
|
||||
assert.equal(started.group.activity.fillWithAi, false);
|
||||
assert.deepEqual(started.group.activity.companionSpecializationIds, []);
|
||||
}));
|
||||
|
||||
test("launches players-only and AI-filled group activities only when every member is ready", () => withDatabase(async (database) => {
|
||||
const leaderAuth = await database.register("ReadyLeader", "group-pass");
|
||||
const memberAuth = await database.register("ReadyMember", "member-pass");
|
||||
|
||||
Reference in new issue
Block a user