History

Fix browser atom command mocks

Julius Marminge committed 4 months ago

Commit a2ed9bb1 parent 841bbd91 file · +42 −23Browse files

Unified · Split

apps/web/src/components/settings/SettingsPanels.browser.tsx+42−23
@@ -214,58 +214,77 @@ function resetServerConfigSnapshot(): void { · 213 unmodified lines
214214 }
215215
216216 vi.mock("@effect/atom-react", async (importOriginal) => {
217− const actual = await importOriginal<typeof import("@effect/atom-react")>();
217+ const [actual, Exit] = await Promise.all([
218+ importOriginal<typeof import("@effect/atom-react")>(),
219+ import("effect/Exit"),
220+ ]);
221+ const withSuccessfulExit =
222+ <Args extends Array<unknown>, A>(run: (...args: Args) => A | Promise<A>) =>
223+ async (...args: Args) =>
224+ Exit.succeed(await run(...args));
225+ const refreshProviders = withSuccessfulExit(mockRefreshProviders);
226+ const connectPairingEnvironment = withSuccessfulExit(mockConnectPairingEnvironment);
227+ const connectDesktopSshEnvironment = withSuccessfulExit(mockConnectDesktopSshEnvironment);
228+ const connectRelayEnvironment = withSuccessfulExit(mockConnectRelayEnvironment);
229+ const removeEnvironment = withSuccessfulExit(mockRemoveEnvironment);
230+ const retryEnvironment = withSuccessfulExit(mockRetryEnvironment);
231+ const refreshRelayEnvironments = withSuccessfulExit(mockRefreshRelayEnvironments);
232+ const updateProvider = withSuccessfulExit(mockUpdateProvider);
233+ const signalProcess = withSuccessfulExit(
234+ ({ input }: { readonly input: Parameters<LocalApi["server"]["signalProcess"]>[0] }) =>
235+ window.nativeApi?.server.signalProcess(input),
236+ );
237+ const openInEditor = withSuccessfulExit(
238+ ({
239+ input,
240+ }: {
241+ readonly input: {
242+ readonly cwd: string;
243+ readonly editor: Parameters<LocalApi["shell"]["openInEditor"]>[1];
244+ };
245+ }) => window.nativeApi?.shell.openInEditor(input.cwd, input.editor),
246+ );
247+ const succeedWithNoResult = async () => Exit.succeed(undefined);
218248
219249 return {
220250 ...actual,
221251 useAtomSet: (atom: unknown, options: unknown) => {
222252 if (atom === directAtomMocks.refreshProvidersAction) {
223− return mockRefreshProviders;
253+ return refreshProviders;
224254 }
225255 if (atom === directAtomMocks.connectPairingAction) {
226− return mockConnectPairingEnvironment;
256+ return connectPairingEnvironment;
227257 }
228258 if (atom === directAtomMocks.connectSshEnvironmentAction) {
229− return mockConnectDesktopSshEnvironment;
259+ return connectDesktopSshEnvironment;
230260 }
231261 if (atom === directAtomMocks.environmentRegisterAction) {
232− return mockConnectRelayEnvironment;
262+ return connectRelayEnvironment;
233263 }
234264 if (atom === directAtomMocks.environmentRemoveAction) {
235− return mockRemoveEnvironment;
265+ return removeEnvironment;
236266 }
237267 if (atom === directAtomMocks.environmentRetryAction) {
238− return mockRetryEnvironment;
268+ return retryEnvironment;
239269 }
240270 if (atom === directAtomMocks.refreshRelayEnvironmentsAction) {
241− return mockRefreshRelayEnvironments;
271+ return refreshRelayEnvironments;
242272 }
243273 if (atom === directAtomMocks.updateProviderAction) {
244− return mockUpdateProvider;
274+ return updateProvider;
245275 }
246276 if (atom === directAtomMocks.signalProcessAction) {
247− return async ({
248− input,
249− }: {
250− readonly input: Parameters<LocalApi["server"]["signalProcess"]>[0];
251− }) => window.nativeApi?.server.signalProcess(input);
277+ return signalProcess;
252278 }
253279 if (atom === directAtomMocks.openInEditorAction) {
254− return async ({
255− input,
256− }: {
257− readonly input: {
258− readonly cwd: string;
259− readonly editor: Parameters<LocalApi["shell"]["openInEditor"]>[1];
260− };
261− }) => window.nativeApi?.shell.openInEditor(input.cwd, input.editor);
280+ return openInEditor;
262281 }
263282 if (
264283 atom === directAtomMocks.removeKeybindingAction ||
265284 atom === directAtomMocks.updateSettingsAction ||
266285 atom === directAtomMocks.upsertKeybindingAction
267286 ) {
268− return async () => undefined;
287+ return succeedWithNoResult;
269288 }
270289 return actual.useAtomSet(atom as never, options as never);
271290 },