Fix typo and add better ops for decrypt API calls

This commit is contained in:
Jack Kingsman
2026-03-15 15:47:09 -07:00
parent cf1a55e258
commit 0b1a19164a
36 changed files with 134 additions and 142 deletions
+1 -1
View File
@@ -304,7 +304,7 @@ export function ChatHeader({
title={
activeContactIsPrefixOnly
? 'Direct Trace unavailable until the full contact key is known'
: 'Direct Trace. Send a zero-hop packet to thie contact and display out and back SNR'
: 'Direct Trace. Send a zero-hop packet to this contact and display out and back SNR'
}
aria-label="Direct Trace"
disabled={activeContactIsPrefixOnly}
@@ -15,6 +15,7 @@ import { Input } from './ui/input';
import { Label } from './ui/label';
import { Checkbox } from './ui/checkbox';
import { Button } from './ui/button';
import { toast } from './ui/sonner';
type Tab = 'existing' | 'new-contact' | 'new-room' | 'hashtag';
@@ -90,6 +91,9 @@ export function NewMessageModal({
resetForm();
onClose();
} catch (err) {
toast.error('Failed to create conversation', {
description: err instanceof Error ? err.message : undefined,
});
setError(err instanceof Error ? err.message : 'Failed to create');
} finally {
setLoading(false);
@@ -123,6 +127,9 @@ export function NewMessageModal({
setName('');
hashtagInputRef.current?.focus();
} catch (err) {
toast.error('Failed to create conversation', {
description: err instanceof Error ? err.message : undefined,
});
setError(err instanceof Error ? err.message : 'Failed to create');
} finally {
setLoading(false);
@@ -11,6 +11,7 @@ import { describe, it, expect, vi, beforeEach } from 'vitest';
import { NewMessageModal } from '../components/NewMessageModal';
import type { Contact } from '../types';
import { toast } from '../components/ui/sonner';
// Mock sonner (toast)
vi.mock('../components/ui/sonner', () => ({
@@ -35,6 +36,11 @@ const mockContact: Contact = {
first_seen: null,
};
const mockToast = toast as unknown as {
success: ReturnType<typeof vi.fn>;
error: ReturnType<typeof vi.fn>;
};
describe('NewMessageModal form reset', () => {
const onClose = vi.fn();
const onSelectConversation = vi.fn();
@@ -137,6 +143,24 @@ describe('NewMessageModal form reset', () => {
});
expect(onClose).toHaveBeenCalled();
});
it('toasts when creation fails', async () => {
const user = userEvent.setup();
onCreateChannel.mockRejectedValueOnce(new Error('Bad key'));
renderModal();
await switchToTab(user, 'Room');
await user.type(screen.getByPlaceholderText('Room name'), 'MyRoom');
await user.type(screen.getByPlaceholderText('Pre-shared key (hex)'), 'cc'.repeat(16));
await user.click(screen.getByRole('button', { name: 'Create' }));
await waitFor(() => {
expect(mockToast.error).toHaveBeenCalledWith('Failed to create conversation', {
description: 'Bad key',
});
});
expect(screen.getByText('Bad key')).toBeTruthy();
});
});
describe('tab switching resets form', () => {