mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Remove unused ask boolean injectable family
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
f1f153a152
commit
c5e711c539
@ -1,666 +0,0 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`ask-boolean given started when asking multiple questions renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
>
|
||||
<div
|
||||
class="Animate opacity notification flex info enter"
|
||||
style="--enter-duration: 100ms; --leave-duration: 100ms;"
|
||||
>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon material focusable"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="info_outline"
|
||||
>
|
||||
info_outline
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="message box grow"
|
||||
>
|
||||
<div
|
||||
class="flex column gaps"
|
||||
data-testid="ask-boolean-some-random-id-1"
|
||||
>
|
||||
<b>
|
||||
some-title
|
||||
</b>
|
||||
<p>
|
||||
Some question
|
||||
</p>
|
||||
<div
|
||||
class="flex gaps row align-left box grow"
|
||||
>
|
||||
<button
|
||||
class="Button light"
|
||||
data-testid="ask-boolean-some-random-id-1-button-yes"
|
||||
type="button"
|
||||
>
|
||||
Yes
|
||||
</button>
|
||||
<button
|
||||
class="Button active outlined"
|
||||
data-testid="ask-boolean-some-random-id-1-button-no"
|
||||
type="button"
|
||||
>
|
||||
No
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon close material interactive focusable"
|
||||
data-testid="close-notification-for-ask-boolean-for-some-random-id-1"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="close"
|
||||
>
|
||||
close
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="Animate opacity notification flex info enter"
|
||||
style="--enter-duration: 100ms; --leave-duration: 100ms;"
|
||||
>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon material focusable"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="info_outline"
|
||||
>
|
||||
info_outline
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="message box grow"
|
||||
>
|
||||
<div
|
||||
class="flex column gaps"
|
||||
data-testid="ask-boolean-some-random-id-2"
|
||||
>
|
||||
<b>
|
||||
some-other-title
|
||||
</b>
|
||||
<p>
|
||||
Some other question
|
||||
</p>
|
||||
<div
|
||||
class="flex gaps row align-left box grow"
|
||||
>
|
||||
<button
|
||||
class="Button light"
|
||||
data-testid="ask-boolean-some-random-id-2-button-yes"
|
||||
type="button"
|
||||
>
|
||||
Yes
|
||||
</button>
|
||||
<button
|
||||
class="Button active outlined"
|
||||
data-testid="ask-boolean-some-random-id-2-button-no"
|
||||
type="button"
|
||||
>
|
||||
No
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon close material interactive focusable"
|
||||
data-testid="close-notification-for-ask-boolean-for-some-random-id-2"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="close"
|
||||
>
|
||||
close
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
|
||||
exports[`ask-boolean given started when asking multiple questions when answering to first question renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
>
|
||||
<div
|
||||
class="Animate opacity notification flex info enter"
|
||||
style="--enter-duration: 100ms; --leave-duration: 100ms;"
|
||||
>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon material focusable"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="info_outline"
|
||||
>
|
||||
info_outline
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="message box grow"
|
||||
>
|
||||
<div
|
||||
class="flex column gaps"
|
||||
data-testid="ask-boolean-some-random-id-2"
|
||||
>
|
||||
<b>
|
||||
some-other-title
|
||||
</b>
|
||||
<p>
|
||||
Some other question
|
||||
</p>
|
||||
<div
|
||||
class="flex gaps row align-left box grow"
|
||||
>
|
||||
<button
|
||||
class="Button light"
|
||||
data-testid="ask-boolean-some-random-id-2-button-yes"
|
||||
type="button"
|
||||
>
|
||||
Yes
|
||||
</button>
|
||||
<button
|
||||
class="Button active outlined"
|
||||
data-testid="ask-boolean-some-random-id-2-button-no"
|
||||
type="button"
|
||||
>
|
||||
No
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon close material interactive focusable"
|
||||
data-testid="close-notification-for-ask-boolean-for-some-random-id-2"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="close"
|
||||
>
|
||||
close
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
|
||||
exports[`ask-boolean given started when asking question renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
>
|
||||
<div
|
||||
class="Animate opacity notification flex info enter"
|
||||
style="--enter-duration: 100ms; --leave-duration: 100ms;"
|
||||
>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon material focusable"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="info_outline"
|
||||
>
|
||||
info_outline
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="message box grow"
|
||||
>
|
||||
<div
|
||||
class="flex column gaps"
|
||||
data-testid="ask-boolean-some-random-id-1"
|
||||
>
|
||||
<b>
|
||||
some-title
|
||||
</b>
|
||||
<p>
|
||||
Some question
|
||||
</p>
|
||||
<div
|
||||
class="flex gaps row align-left box grow"
|
||||
>
|
||||
<button
|
||||
class="Button light"
|
||||
data-testid="ask-boolean-some-random-id-1-button-yes"
|
||||
type="button"
|
||||
>
|
||||
Yes
|
||||
</button>
|
||||
<button
|
||||
class="Button active outlined"
|
||||
data-testid="ask-boolean-some-random-id-1-button-no"
|
||||
type="button"
|
||||
>
|
||||
No
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="box"
|
||||
>
|
||||
<i
|
||||
class="Icon close material interactive focusable"
|
||||
data-testid="close-notification-for-ask-boolean-for-some-random-id-1"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="close"
|
||||
>
|
||||
close
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
|
||||
exports[`ask-boolean given started when asking question when user answers "no" renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
/>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
|
||||
exports[`ask-boolean given started when asking question when user answers "yes" renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
/>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
|
||||
exports[`ask-boolean given started when asking question when user closes notification without answering the question renders 1`] = `
|
||||
<body>
|
||||
<div>
|
||||
<div
|
||||
class="topBar"
|
||||
>
|
||||
<div
|
||||
class="items"
|
||||
>
|
||||
<i
|
||||
class="Icon material interactive focusable"
|
||||
data-testid="home-button"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="home"
|
||||
>
|
||||
home
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-back"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_back"
|
||||
>
|
||||
arrow_back
|
||||
</span>
|
||||
</i>
|
||||
<i
|
||||
class="Icon material interactive disabled focusable"
|
||||
data-testid="history-forward"
|
||||
>
|
||||
<span
|
||||
class="icon"
|
||||
data-icon-name="arrow_forward"
|
||||
>
|
||||
arrow_forward
|
||||
</span>
|
||||
</i>
|
||||
</div>
|
||||
<div
|
||||
class="items"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="StatusBar"
|
||||
>
|
||||
<div
|
||||
class="leftSide"
|
||||
/>
|
||||
<div
|
||||
class="rightSide"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="Notifications flex column align-flex-end"
|
||||
/>
|
||||
</div>
|
||||
</body>
|
||||
`;
|
||||
@ -1,29 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { AskBooleanAnswerChannel } from "../../common/ask-boolean/ask-boolean-answer-channel.injectable";
|
||||
import askBooleanAnswerChannelInjectable from "../../common/ask-boolean/ask-boolean-answer-channel.injectable";
|
||||
import askBooleanPromiseInjectable from "./ask-boolean-promise.injectable";
|
||||
import type { MessageChannelListener } from "../../common/utils/channel/message-channel-listener-injection-token";
|
||||
import { messageChannelListenerInjectionToken } from "../../common/utils/channel/message-channel-listener-injection-token";
|
||||
|
||||
|
||||
const askBooleanAnswerChannelListenerInjectable = getInjectable({
|
||||
id: "ask-boolean-answer-channel-listener",
|
||||
|
||||
instantiate: (di): MessageChannelListener<AskBooleanAnswerChannel> => ({
|
||||
channel: di.inject(askBooleanAnswerChannelInjectable),
|
||||
|
||||
handler: ({ id, value }) => {
|
||||
const answerPromise = di.inject(askBooleanPromiseInjectable, id);
|
||||
|
||||
answerPromise.resolve(value);
|
||||
},
|
||||
}),
|
||||
|
||||
injectionToken: messageChannelListenerInjectionToken,
|
||||
});
|
||||
|
||||
export default askBooleanAnswerChannelListenerInjectable;
|
||||
@ -1,33 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
||||
|
||||
const askBooleanPromiseInjectable = getInjectable({
|
||||
id: "ask-boolean-promise",
|
||||
|
||||
instantiate: (di, questionId: string) => {
|
||||
void questionId;
|
||||
|
||||
let resolve: (value: boolean) => void;
|
||||
|
||||
const promise = new Promise<boolean>(_resolve => {
|
||||
resolve = _resolve;
|
||||
});
|
||||
|
||||
return ({
|
||||
promise,
|
||||
|
||||
resolve: (value: boolean) => {
|
||||
resolve(value);
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
lifecycle: lifecycleEnum.keyedSingleton({
|
||||
getInstanceKey: (di, questionId: string) => questionId,
|
||||
}),
|
||||
});
|
||||
|
||||
export default askBooleanPromiseInjectable;
|
||||
@ -1,39 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { messageToChannelInjectionToken } from "../../common/utils/channel/message-to-channel-injection-token";
|
||||
import askBooleanQuestionChannelInjectable from "../../common/ask-boolean/ask-boolean-question-channel.injectable";
|
||||
import askBooleanPromiseInjectable from "./ask-boolean-promise.injectable";
|
||||
import getRandomIdInjectable from "../../common/utils/get-random-id.injectable";
|
||||
|
||||
export type AskBoolean = ({
|
||||
title,
|
||||
question,
|
||||
}: {
|
||||
title: string;
|
||||
question: string;
|
||||
}) => Promise<boolean>;
|
||||
|
||||
const askBooleanInjectable = getInjectable({
|
||||
id: "ask-boolean",
|
||||
|
||||
instantiate: (di): AskBoolean => {
|
||||
const messageToChannel = di.inject(messageToChannelInjectionToken);
|
||||
const askBooleanChannel = di.inject(askBooleanQuestionChannelInjectable);
|
||||
const getRandomId = di.inject(getRandomIdInjectable);
|
||||
|
||||
return async ({ title, question }) => {
|
||||
const id = getRandomId();
|
||||
|
||||
const returnValuePromise = di.inject(askBooleanPromiseInjectable, id);
|
||||
|
||||
await messageToChannel(askBooleanChannel, { id, title, question });
|
||||
|
||||
return await returnValuePromise.promise;
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export default askBooleanInjectable;
|
||||
@ -1,206 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||
import type { AskBoolean } from "./ask-boolean.injectable";
|
||||
import askBooleanInjectable from "./ask-boolean.injectable";
|
||||
import { getPromiseStatus } from "../../common/test-utils/get-promise-status";
|
||||
import type { RenderResult } from "@testing-library/react";
|
||||
import { fireEvent } from "@testing-library/react";
|
||||
import getRandomIdInjectable from "../../common/utils/get-random-id.injectable";
|
||||
|
||||
describe("ask-boolean", () => {
|
||||
let applicationBuilder: ApplicationBuilder;
|
||||
let askBoolean: AskBoolean;
|
||||
|
||||
beforeEach(() => {
|
||||
applicationBuilder = getApplicationBuilder();
|
||||
|
||||
const getRandomIdFake = jest
|
||||
.fn()
|
||||
.mockReturnValueOnce("some-random-id-1")
|
||||
.mockReturnValueOnce("some-random-id-2");
|
||||
|
||||
applicationBuilder.dis.mainDi.override(getRandomIdInjectable, () => getRandomIdFake);
|
||||
|
||||
askBoolean = applicationBuilder.dis.mainDi.inject(askBooleanInjectable);
|
||||
});
|
||||
|
||||
describe("given started", () => {
|
||||
let rendered: RenderResult;
|
||||
|
||||
beforeEach(async () => {
|
||||
rendered = await applicationBuilder.render();
|
||||
});
|
||||
|
||||
describe("when asking question", () => {
|
||||
let actualPromise: Promise<boolean>;
|
||||
|
||||
beforeEach(() => {
|
||||
actualPromise = askBoolean({
|
||||
title: "some-title",
|
||||
question: "Some question",
|
||||
});
|
||||
});
|
||||
|
||||
it("does not resolve yet", async () => {
|
||||
const promiseStatus = await getPromiseStatus(actualPromise);
|
||||
|
||||
expect(promiseStatus.fulfilled).toBe(false);
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("shows notification", () => {
|
||||
const notification = rendered.getByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).not.toBeUndefined();
|
||||
});
|
||||
|
||||
describe('when user answers "yes"', () => {
|
||||
beforeEach(() => {
|
||||
const button = rendered.getByTestId("ask-boolean-some-random-id-1-button-yes");
|
||||
|
||||
fireEvent.click(button);
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("does not show notification anymore", () => {
|
||||
const notification = rendered.queryByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).toBeNull();
|
||||
});
|
||||
|
||||
it("resolves", async () => {
|
||||
const actual = await actualPromise;
|
||||
|
||||
expect(actual).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when user answers "no"', () => {
|
||||
beforeEach(() => {
|
||||
const button = rendered.getByTestId("ask-boolean-some-random-id-1-button-no");
|
||||
|
||||
fireEvent.click(button);
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("does not show notification anymore", () => {
|
||||
const notification = rendered.queryByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).toBeNull();
|
||||
});
|
||||
|
||||
it("resolves", async () => {
|
||||
const actual = await actualPromise;
|
||||
|
||||
expect(actual).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("when user closes notification without answering the question", () => {
|
||||
beforeEach(() => {
|
||||
const button = rendered.getByTestId("close-notification-for-ask-boolean-for-some-random-id-1");
|
||||
|
||||
fireEvent.click(button);
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("does not show notification anymore", () => {
|
||||
const notification = rendered.queryByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).toBeNull();
|
||||
});
|
||||
|
||||
it("resolves", async () => {
|
||||
const actual = await actualPromise;
|
||||
|
||||
expect(actual).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("when asking multiple questions", () => {
|
||||
let firstQuestionPromise: Promise<boolean>;
|
||||
let secondQuestionPromise: Promise<boolean>;
|
||||
|
||||
beforeEach(() => {
|
||||
firstQuestionPromise = askBoolean({
|
||||
title: "some-title",
|
||||
question: "Some question",
|
||||
});
|
||||
|
||||
secondQuestionPromise = askBoolean({
|
||||
title: "some-other-title",
|
||||
question: "Some other question",
|
||||
});
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("shows notification for first question", () => {
|
||||
const notification = rendered.getByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).not.toBeUndefined();
|
||||
});
|
||||
|
||||
it("shows notification for second question", () => {
|
||||
const notification = rendered.getByTestId("ask-boolean-some-random-id-2");
|
||||
|
||||
expect(notification).not.toBeUndefined();
|
||||
});
|
||||
|
||||
describe("when answering to first question", () => {
|
||||
beforeEach(() => {
|
||||
const button = rendered.getByTestId("ask-boolean-some-random-id-1-button-no");
|
||||
|
||||
fireEvent.click(button);
|
||||
});
|
||||
|
||||
it("renders", () => {
|
||||
expect(rendered.baseElement).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("does not show notification for first question anymore", () => {
|
||||
const notification = rendered.queryByTestId("ask-boolean-some-random-id-1");
|
||||
|
||||
expect(notification).toBeNull();
|
||||
});
|
||||
|
||||
it("still shows notification for second question", () => {
|
||||
const notification = rendered.getByTestId("ask-boolean-some-random-id-2");
|
||||
|
||||
expect(notification).not.toBeUndefined();
|
||||
});
|
||||
|
||||
it("resolves first question", async () => {
|
||||
const actual = await firstQuestionPromise;
|
||||
|
||||
expect(actual).toBe(false);
|
||||
});
|
||||
|
||||
it("does not resolve second question yet", async () => {
|
||||
const promiseStatus = await getPromiseStatus(secondQuestionPromise);
|
||||
|
||||
expect(promiseStatus.fulfilled).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user