|
1 | 1 | const { expect } = require("chai");
|
2 | 2 | const firestore = require("../../../utils/firestore");
|
3 |
| -const { setInDiscordFalseScript, addRoleToUser, getDiscordMembers } = require("../../../services/discordService"); |
| 3 | +const { |
| 4 | + setInDiscordFalseScript, |
| 5 | + addRoleToUser, |
| 6 | + getDiscordMembers, |
| 7 | + removeRoleFromUser, |
| 8 | +} = require("../../../services/discordService"); |
4 | 9 | const { fetchAllUsers } = require("../../../models/users");
|
5 | 10 | const Sinon = require("sinon");
|
6 | 11 | const userModel = firestore.collection("users");
|
@@ -73,4 +78,39 @@ describe("Discord services", function () {
|
73 | 78 | });
|
74 | 79 | });
|
75 | 80 | });
|
| 81 | + |
| 82 | + describe("remove role from a user", function () { |
| 83 | + beforeEach(function () { |
| 84 | + fetchStub = Sinon.stub(global, "fetch"); |
| 85 | + }); |
| 86 | + afterEach(function () { |
| 87 | + fetchStub.restore(); |
| 88 | + }); |
| 89 | + it("makes a successful fetch call to discord", async function () { |
| 90 | + fetchStub.returns( |
| 91 | + Promise.resolve({ |
| 92 | + status: 200, |
| 93 | + json: () => |
| 94 | + Promise.resolve({ |
| 95 | + message: "Role Removed Successfully", |
| 96 | + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, |
| 97 | + }), |
| 98 | + }) |
| 99 | + ); |
| 100 | + const response = await removeRoleFromUser("112233445566778899", "987654321123456789"); |
| 101 | + expect(response).to.deep.equal({ |
| 102 | + message: "Role Removed Successfully", |
| 103 | + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, |
| 104 | + }); |
| 105 | + expect(fetchStub.calledOnce).to.be.equal(true); |
| 106 | + }); |
| 107 | + |
| 108 | + it("makes a failing fetch call to discord", async function () { |
| 109 | + fetchStub.rejects(new Error("Fetch Error")); |
| 110 | + removeRoleFromUser("", "").catch((err) => { |
| 111 | + expect(err).to.be.an.instanceOf(Error); |
| 112 | + expect(err.message).to.equal("Fetch error"); |
| 113 | + }); |
| 114 | + }); |
| 115 | + }); |
76 | 116 | });
|
0 commit comments