Skip to content

Commit

Permalink
fixed tests and added new ones
Browse files Browse the repository at this point in the history
  • Loading branch information
quetool committed Dec 7, 2023
1 parent 03c9758 commit 715d93d
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 6 deletions.
40 changes: 36 additions & 4 deletions test/shared/namespace_utils_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,39 @@ void main() {
);
});

test('constructs namespaces with required and optional namespaces', () {
Map<String, Namespace> namespaces = NamespaceUtils.constructNamespaces(
availableAccounts: availableAccounts3,
availableMethods: availableMethods3,
availableEvents: availableEvents3,
requiredNamespaces: requiredNamespacesInAvailable3,
optionalNamespaces: optionalNamespacesInAvailable3,
);

expect(namespaces.length, 1);
expect(
namespaces['eip155']!.accounts,
availableAccounts3.toList(),
);
expect(
namespaces['eip155']!.methods,
availableMethods3.map((m) => m.split(':').last).toList(),
);
expect(
namespaces['eip155']!.events,
availableEvents3.map((m) => m.split(':').last).toList(),
);

expect(
SignApiValidatorUtils.isConformingNamespaces(
requiredNamespaces: requiredNamespacesInAvailable3,
namespaces: namespaces,
context: '',
),
true,
);
});

test('constructNamespaces trims off unrequested', () {
final reqNamespace = {
'eip155': const RequiredNamespace(
Expand Down Expand Up @@ -449,7 +482,7 @@ void main() {
Errors.getSdkError(
Errors.UNSUPPORTED_METHODS,
context:
" namespaces methods don't satisfy requiredNamespaces methods for namespace2. Requested: [method3, method4], Supported: [method3]",
" namespaces methods don't satisfy requiredNamespaces methods for namespace1:chain1. Requested: [method1, method2, method3], Supported: [method1, method2]",
).message,
Errors.getSdkError(
Errors.UNSUPPORTED_EVENTS,
Expand All @@ -459,13 +492,12 @@ void main() {
Errors.getSdkError(
Errors.UNSUPPORTED_EVENTS,
context:
" namespaces events don't satisfy requiredNamespaces events for namespace2. Requested: [event3, event4], Supported: [event3]",
" namespaces events don't satisfy requiredNamespaces events for namespace1:chain1. Requested: [event1, event2, event3], Supported: [event1, event2]",
).message,
];

for (int i = 0; i < nonconforming.length; i++) {
Map<String, Namespace> namespaces =
NamespaceUtils.constructNamespaces(
final namespaces = NamespaceUtils.constructNamespaces(
availableAccounts: availableAccounts,
availableMethods: availableMethods,
availableEvents: availableEvents,
Expand Down
62 changes: 60 additions & 2 deletions test/shared/shared_test_values.dart
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ final Map<String, RequiredNamespace> requiredNamespacesNonconformingMethods1 = {

final Map<String, RequiredNamespace> requiredNamespacesNonconformingMethods2 = {
'namespace1:chain1': const RequiredNamespace(
methods: ['method1', 'method2'],
methods: ['method1', 'method2', 'method3'],
events: ['event1', 'event2'],
),
'namespace2': const RequiredNamespace(
Expand All @@ -160,7 +160,7 @@ final Map<String, RequiredNamespace> requiredNamespacesNonconformingEvents1 = {
final Map<String, RequiredNamespace> requiredNamespacesNonconformingEvents2 = {
'namespace1:chain1': const RequiredNamespace(
methods: ['method1', 'method2'],
events: ['event1', 'event2'],
events: ['event1', 'event2', 'event3'],
),
'namespace2': const RequiredNamespace(
chains: ['namespace2:chain1', 'namespace2:chain2'],
Expand All @@ -175,3 +175,61 @@ Map<String, RequiredNamespace> optionalNamespaces = {
events: ['event5', 'event2'],
),
};

const sepolia = 'eip155:11155111';

final Set<String> availableAccounts3 = {
'$sepolia:0x99999999999999999999999999',
};

final Set<String> availableMethods3 = {
'$sepolia:eth_sendTransaction',
'$sepolia:personal_sign',
'$sepolia:eth_signTypedData',
'$sepolia:eth_signTypedData_v4',
'$sepolia:eth_sign',
};

final Set<String> availableEvents3 = {
'$sepolia:chainChanged',
'$sepolia:accountsChanged',
};

final Map<String, RequiredNamespace> requiredNamespacesInAvailable3 = {
'eip155': const RequiredNamespace(
chains: [sepolia],
methods: ['eth_sendTransaction', 'personal_sign'],
events: ['chainChanged', 'accountsChanged'],
),
};

final Map<String, RequiredNamespace> optionalNamespacesInAvailable3 = {
'eip155': const RequiredNamespace(chains: [
'eip155:1',
'eip155:5',
sepolia,
'eip155:137',
'eip155:80001',
'eip155:42220',
'eip155:44787',
'eip155:56',
'eip155:43114',
'eip155:42161',
'eip155:421613',
'eip155:10',
'eip155:420',
'eip155:8453'
], methods: [
'eth_sendTransaction',
'personal_sign',
'eth_signTypedData',
'eth_signTypedData_v4',
'eth_sign'
], events: [
'chainChanged',
'accountsChanged',
'message',
'disconnect',
'connect'
]),
};

0 comments on commit 715d93d

Please sign in to comment.