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