Merge pull request #1813 from PR0M3TH3AN/fix-moderation-test-race-condition-5590692852708543873

fix(tests): resolve race condition in moderation overrides test
This commit is contained in:
thePR0M3TH3AN authored and GitHub committed 2026-01-27 09:46:51 -05:00
commit b75e1cdc42
2 files changed
+27 -43

No files matched your search

+25 -41
View File
@@ -112,7 +112,21 @@ test("handleModerationOverride resumes deferred playback", async (t) => {
test("handleModerationBlock requests a block, clears overrides, and refreshes hidden state", async (t) => {
withMockedNostrTools(t);
const app = await createModerationAppHarness();
const ensureLoadedMock = mock.fn(async () => {});
let blockedState = false;
const addBlockMock = mock.fn(async () => {
blockedState = true;
return { ok: true };
});
const isBlockedMock = mock.fn(() => blockedState);
const mockUserBlocks = {
ensureLoaded: ensureLoadedMock,
addBlock: addBlockMock,
isBlocked: isBlockedMock,
};
const app = await createModerationAppHarness({ userBlocks: mockUserBlocks });
app.getActiveModerationThresholds = () => ({
autoplayBlockThreshold: Number.POSITIVE_INFINITY,
blurThreshold: Number.POSITIVE_INFINITY,
@@ -179,28 +193,6 @@ test("handleModerationBlock requests a block, clears overrides, and refreshes hi
},
};
const originalEnsureLoaded = userBlocks.ensureLoaded;
const originalAddBlock = userBlocks.addBlock;
const originalIsBlocked = userBlocks.isBlocked;
const ensureLoadedMock = mock.fn(async () => {});
let blockedState = false;
const addBlockMock = mock.fn(async () => {
blockedState = true;
return { ok: true };
});
const isBlockedMock = mock.fn(() => blockedState);
userBlocks.ensureLoaded = ensureLoadedMock;
userBlocks.addBlock = addBlockMock;
userBlocks.isBlocked = isBlockedMock;
t.after(() => {
userBlocks.ensureLoaded = originalEnsureLoaded;
userBlocks.addBlock = originalAddBlock;
userBlocks.isBlocked = originalIsBlocked;
});
await app.handleModerationOverride({ video: incomingVideo, card });
assert.equal(storedVideo.moderation.viewerOverride?.showAnyway, true);
@@ -237,29 +229,21 @@ test("handleModerationBlock requests a block, clears overrides, and refreshes hi
test("handleModerationBlock returns false when viewer is logged out", async (t) => {
withMockedNostrTools(t);
const app = await createModerationAppHarness();
app.pubkey = "f".repeat(64);
app.isUserLoggedIn = () => false;
app.showStatus = mock.fn(() => {});
app.showError = mock.fn(() => {});
const originalEnsureLoaded = userBlocks.ensureLoaded;
const originalAddBlock = userBlocks.addBlock;
const originalIsBlocked = userBlocks.isBlocked;
const ensureLoadedMock = mock.fn(async () => {});
const addBlockMock = mock.fn(async () => ({ ok: true }));
const isBlockedMock = mock.fn(() => false);
userBlocks.ensureLoaded = ensureLoadedMock;
userBlocks.addBlock = addBlockMock;
userBlocks.isBlocked = isBlockedMock;
const mockUserBlocks = {
ensureLoaded: ensureLoadedMock,
addBlock: addBlockMock,
isBlocked: isBlockedMock,
};
t.after(() => {
userBlocks.ensureLoaded = originalEnsureLoaded;
userBlocks.addBlock = originalAddBlock;
userBlocks.isBlocked = originalIsBlocked;
});
const app = await createModerationAppHarness({ userBlocks: mockUserBlocks });
app.pubkey = "f".repeat(64);
app.isUserLoggedIn = () => false;
app.showStatus = mock.fn(() => {});
app.showError = mock.fn(() => {});
const video = {
id: "c".repeat(64),
+2 -2
View File
@@ -199,7 +199,7 @@ async function getApplicationClass() {
return cachedApplicationClass;
}
export async function createModerationAppHarness() {
export async function createModerationAppHarness(options = {}) {
const Application = await getApplicationClass();
const app = Object.create(Application.prototype);
@@ -222,7 +222,7 @@ export async function createModerationAppHarness() {
app.moderationActionController = new ModerationActionController({
services: {
userBlocks,
userBlocks: options.userBlocks || userBlocks,
setModerationOverride,
clearModerationOverride,
},