Skip to content

Commit c2c4dc9

Browse files
authored
fix context api test (#19412)
context consumer update tests
1 parent 7f2a78f commit c2c4dc9

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { UmbContextProvider } from '../provide/context-provider.js';
22
import { UmbContextToken } from '../token/context-token.js';
33
import type { UmbContextMinimal } from '../types.js';
44
import { UmbContextConsumer } from './context-consumer.js';
5-
import type { UmbContextRequestEventImplementation } from './context-request.event.js';
5+
import { UmbContextRequestEventImplementation } from './context-request.event.js';
66
import { UMB_CONTEXT_REQUEST_EVENT_TYPE } from './context-request.event.js';
77
import { assert, expect, oneEvent } from '@open-wc/testing';
88

@@ -266,7 +266,7 @@ describe('UmbContextConsumer', () => {
266266
localConsumer.hostConnected();
267267
});
268268

269-
it('does not respond to a non existing api alias', (done) => {
269+
it('does not respond to a non existing api alias', async () => {
270270
const provider = new UmbContextProvider(
271271
document.body,
272272
testContextAliasAndApiAlias,
@@ -277,21 +277,19 @@ describe('UmbContextConsumer', () => {
277277
let callbackCount = 0;
278278

279279
const localConsumer = new UmbContextConsumer(element, testContextAliasAndNotExistingApiAlias, (context) => {
280-
callbackCount++;
281-
if (callbackCount === 1) {
282-
expect(context).to.be.undefined;
283-
done();
284-
} else {
285-
assert.fail('Callback should not be called more than once');
286-
}
280+
assert.fail('Callback should not be called more than once');
287281
});
282+
const requestEvent = oneEvent(localConsumer.getHostElement(), UMB_CONTEXT_REQUEST_EVENT_TYPE);
288283
localConsumer.hostConnected();
289284

285+
await requestEvent;
286+
await Promise.resolve();
287+
290288
// Delayed check to make sure the callback is not called.
291-
Promise.resolve().then(() => {
292-
localConsumer.hostDisconnected();
293-
provider.hostDisconnected();
294-
});
289+
290+
expect(callbackCount).to.equal(0, 'Callback should never have been called');
291+
localConsumer.hostDisconnected();
292+
provider.hostDisconnected();
295293
});
296294
});
297295

@@ -368,7 +366,7 @@ describe('UmbContextConsumer', () => {
368366
localConsumer.hostConnected();
369367
});
370368

371-
it('disapproving discriminator does not fire callback', (done) => {
369+
it('disapproving discriminator does not fire callback', async () => {
372370
const provider = new UmbContextProvider(document.body, testContextAlias, new UmbTestContextConsumerClass());
373371
provider.hostConnected();
374372

@@ -379,24 +377,21 @@ describe('UmbContextConsumer', () => {
379377
new UmbContextToken(testContextAlias, undefined, badDiscriminator),
380378
(_instance) => {
381379
callbackCount++;
382-
if (callbackCount === 1) {
383-
expect(_instance).to.be.undefined;
384-
done();
385-
} else {
386-
assert.fail('Callback should not be called more than once');
387-
}
380+
assert.fail('Callback should not be called more than once');
388381
},
389382
);
383+
const requestEvent = oneEvent(localConsumer.getHostElement(), UMB_CONTEXT_REQUEST_EVENT_TYPE);
390384
localConsumer.hostConnected();
391385

392386
// Wait for to ensure the above request didn't succeed:
393-
Promise.resolve().then(() => {
394-
localConsumer.hostDisconnected();
395-
provider.hostDisconnected();
396-
});
387+
await requestEvent;
388+
await Promise.resolve();
389+
expect(callbackCount).to.equal(0, 'Callback should never have been called');
390+
localConsumer.hostDisconnected();
391+
provider.hostDisconnected();
397392
});
398393

399-
it('context api of same context alias will prevent request from propagating', (done) => {
394+
it('context api of same context alias will prevent request from propagating', async () => {
400395
const provider = new UmbContextProvider(document.body, testContextAlias, new UmbTestContextConsumerClass());
401396
provider.hostConnected();
402397

@@ -414,19 +409,18 @@ describe('UmbContextConsumer', () => {
414409
new UmbContextToken(testContextAlias, undefined, discriminator),
415410
(_instance) => {
416411
callbackCount++;
417-
if (callbackCount === 1) {
418-
expect(_instance).to.be.undefined;
419-
done();
420-
}
421412
},
422413
);
414+
const requestEvent = oneEvent(localConsumer.getHostElement(), UMB_CONTEXT_REQUEST_EVENT_TYPE);
423415
localConsumer.hostConnected();
424416

417+
await requestEvent;
418+
await Promise.resolve();
425419
// Wait for to ensure the above request didn't succeed:
426-
Promise.resolve().then(() => {
427-
localConsumer.hostDisconnected();
428-
provider.hostDisconnected();
429-
});
420+
421+
expect(callbackCount).to.equal(0, 'Callback should never have been called');
422+
localConsumer.hostDisconnected();
423+
provider.hostDisconnected();
430424
});
431425

432426
it('context api of same context alias will NOT prevent request from propagating when set to passContextAliasMatches', (done) => {

0 commit comments

Comments
 (0)