Files
David TaylorandGitHub 34ef439bbd DEV: Allow afterFramePaint to be used in tests (#27231)
We need to register a waiter so that `settled()` will wait for `runAfterFramePaint()` callbacks to be run before proceeding.

Re-lands 7e76e5f450, but wrapped with `isTesting()` to avoid production errors.
2024-05-28 17:02:58 +01:00

17 lines
595 B
JavaScript

import { settled } from "@ember/test-helpers";
import { setupTest } from "ember-qunit";
import { module, test } from "qunit";
import runAfterFramePaint from "discourse/lib/after-frame-paint";
module("Unit | Lib | afterFramePaint", function (hooks) {
setupTest(hooks);
test("should run callback correctly", async function (assert) {
let callbackDone = false;
runAfterFramePaint(() => (callbackDone = true));
assert.false(callbackDone, "callback was not run immediately");
await settled();
assert.true(callbackDone, "callback was run before settled resolved");
});
});