Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions tests/LedgerWalletProvider.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
// tests/LedgerWalletProvider.test.js
const { LedgerWalletProvider } = require('../src/services/wallet/LedgerWalletProvider');

// Mock the webusb transport layer so we can control its behavior in the tests
jest.mock('@ledgerhq/hw-transport-webusb', () => ({
create: jest.fn(),
}));
const TransportWebUSB = require('@ledgerhq/hw-transport-webusb');

describe('LedgerWalletProvider', () => {
let provider;

beforeEach(() => {
provider = new LedgerWalletProvider();
// Clear mock history between tests to prevent data leakage
jest.clearAllMocks();
});

test('should have correct id and name', () => {
Expand All @@ -14,14 +22,10 @@ describe('LedgerWalletProvider', () => {
});

test('connect should throw error if device not found', async () => {
// Mock TransportWebUSB.create to throw
const mockTransport = {
create: jest.fn().mockRejectedValue(new Error('No device selected')),
};
// Assume we can mock it
// For now, just test structure
expect(provider.connect).toBeDefined();
});
// Actively mock the transport to throw the error your comment specified
TransportWebUSB.create.mockRejectedValue(new Error('No device selected'));

// Add more tests as needed
});
// Assert that the provider bubbles up the correct error when connect is called
await expect(provider.connect()).rejects.toThrow('No device selected');
});
});