Skip to content
Merged
Show file tree
Hide file tree
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
42 changes: 42 additions & 0 deletions test/packages/config/api_config_test.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:realunit_wallet/packages/config/api_config.dart';
import 'package:realunit_wallet/packages/config/network_mode.dart';
import 'package:realunit_wallet/packages/utils/default_assets.dart';

void main() {
late ApiConfig config;
Expand All @@ -12,6 +13,15 @@ void main() {
test('returns correct apiHost', () {
expect(config.apiHost, equals('dev.api.dfx.swiss'));
});

test('asset is the Sepolia RealUnit testnet asset', () {
expect(config.asset, realUnitTestAsset);
});

test('ethAssetId and zchfAssetId are the Sepolia ids', () {
expect(config.ethAssetId, sepoliaEthAssetId);
expect(config.zchfAssetId, sepoliaZchfAssetId);
});
});

group('mainnet mode', () {
Expand All @@ -20,6 +30,38 @@ void main() {
test('returns correct apiHost', () {
expect(config.apiHost, equals('api.dfx.swiss'));
});

test('asset is the Ethereum mainnet RealUnit asset', () {
expect(config.asset, realUnitAsset);
});

test('ethAssetId and zchfAssetId are the Ethereum ids', () {
expect(config.ethAssetId, ethereumEthAssetId);
expect(config.zchfAssetId, ethereumZchfAssetId);
});
});
});

group('buildUri', () {
test('builds an https URI (production is not local-testing)', () {
final uri = buildUri('api.dfx.swiss', '/v1/foo');

expect(uri.scheme, 'https');
expect(uri.host, 'api.dfx.swiss');
expect(uri.path, '/v1/foo');
});

test('appends queryParams when provided', () {
final uri = buildUri('api.dfx.swiss', '/v1/foo', {'a': '1', 'b': '2'});

expect(uri.queryParameters['a'], '1');
expect(uri.queryParameters['b'], '2');
});

test('omits the query string entirely when params are null', () {
final uri = buildUri('api.dfx.swiss', '/v1/foo');

expect(uri.hasQuery, isFalse);
});
});
}
30 changes: 30 additions & 0 deletions test/packages/config/network_mode_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:realunit_wallet/packages/config/network_mode.dart';

void main() {
group('$NetworkMode', () {
test('mainnet → isMainnet=true, isTestnet=false, name="Mainnet"', () {
const mode = NetworkMode.mainnet;

expect(mode.isMainnet, isTrue);
expect(mode.isTestnet, isFalse);
expect(mode.name, 'Mainnet');
});

test('testnet → isTestnet=true, isMainnet=false, name="Testnet"', () {
const mode = NetworkMode.testnet;

expect(mode.isTestnet, isTrue);
expect(mode.isMainnet, isFalse);
expect(mode.name, 'Testnet');
});

test('values has exactly the two enum entries (no accidental addition)', () {
// Catches the case where someone adds a third NetworkMode (e.g. local)
// without also updating all the switch-on-mode call sites.
expect(NetworkMode.values, hasLength(2));
expect(NetworkMode.values, contains(NetworkMode.mainnet));
expect(NetworkMode.values, contains(NetworkMode.testnet));
});
});
}
6 changes: 0 additions & 6 deletions test/screens/home/home_bloc_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'package:mocktail/mocktail.dart';
import 'package:realunit_wallet/packages/hardware_wallet/bitbox.dart';
import 'package:realunit_wallet/packages/service/app_store.dart';
import 'package:realunit_wallet/packages/service/balance_service.dart';
import 'package:realunit_wallet/packages/service/dfx/dfx_widget_service.dart';
import 'package:realunit_wallet/packages/service/settings_service.dart';
import 'package:realunit_wallet/packages/service/transaction_history_service.dart';
import 'package:realunit_wallet/packages/service/wallet_service.dart';
Expand All @@ -15,8 +14,6 @@ class _MockBalanceService extends Mock implements BalanceService {}

class _MockTransactionHistoryService extends Mock implements TransactionHistoryService {}

class _MockDfxWidgetService extends Mock implements DfxWidgetService {}

class _MockSettingsService extends Mock implements SettingsService {}

class _MockAppStore extends Mock implements AppStore {}
Expand All @@ -27,7 +24,6 @@ void main() {
late _MockWalletService walletService;
late _MockBalanceService balanceService;
late _MockTransactionHistoryService transactionHistoryService;
late _MockDfxWidgetService dfxService;
late _MockSettingsService settingsService;
late _MockAppStore appStore;
late _MockBitboxService bitboxService;
Expand All @@ -36,7 +32,6 @@ void main() {
walletService = _MockWalletService();
balanceService = _MockBalanceService();
transactionHistoryService = _MockTransactionHistoryService();
dfxService = _MockDfxWidgetService();
settingsService = _MockSettingsService();
appStore = _MockAppStore();
bitboxService = _MockBitboxService();
Expand All @@ -51,7 +46,6 @@ void main() {
walletService,
balanceService,
transactionHistoryService,
dfxService,
settingsService,
appStore,
bitboxService,
Expand Down
37 changes: 37 additions & 0 deletions test/widgets/mnemonic_field_extensions_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:realunit_wallet/widgets/mnemonic_field.dart';

void main() {
group('SeedStringExtension.seedWords', () {
test('splits a normal mnemonic into 12 words', () {
const m = 'test test test test test test test test test test test junk';

expect(m.seedWords, hasLength(12));
expect(m.seedWords.last, 'junk');
});

test('collapses runs of whitespace (tabs, multiple spaces)', () {
const m = ' abandon abandon\tabandon ';

expect(m.seedWords, ['abandon', 'abandon', 'abandon']);
});

test('returns an empty list for an empty / whitespace-only string', () {
expect(''.seedWords, isEmpty);
expect(' '.seedWords, isEmpty);
expect('\t\n '.seedWords, isEmpty);
});

test('trims leading and trailing whitespace', () {
const m = ' one two three ';

expect(m.seedWords, ['one', 'two', 'three']);
});

test('preserves the order of the words', () {
const m = 'alpha bravo charlie';

expect(m.seedWords, ['alpha', 'bravo', 'charlie']);
});
});
}
Loading