1
0
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:
Sebastian Malton 2022-06-28 09:45:11 -04:00
parent f1f153a152
commit c5e711c539
5 changed files with 0 additions and 973 deletions

View File

@ -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>
`;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
});
});
});
});
});