Skip to content

Commit d4fdf1a

Browse files
thephezclaude
andcommitted
fix(wasm-sdk): fix getIdentitiesContractKeys test data and validation
- Remove invalid keyRequestType field from test data - Add purposes field with Authentication and Transfer key types - Enhance parameter injector to handle multiselect checkboxes - Fix validation to expect array of identity results instead of single object 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent cccc462 commit d4fdf1a

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

packages/wasm-sdk/test/ui-automation/fixtures/test-data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ const testData = {
112112
],
113113
contractId: "GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec",
114114
documentTypeName: "domain",
115-
keyRequestType: "all"
115+
purposes: ["0", "3"] // Authentication and Transfer
116116
}
117117
]
118118
},

packages/wasm-sdk/test/ui-automation/tests/query-execution.spec.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,27 @@ function validateKeysResult(resultStr) {
195195
});
196196
}
197197

198+
function validateIdentitiesContractKeysResult(resultStr) {
199+
expect(() => JSON.parse(resultStr)).not.toThrow();
200+
const contractKeysData = JSON.parse(resultStr);
201+
expect(contractKeysData).toBeDefined();
202+
expect(Array.isArray(contractKeysData)).toBe(true);
203+
204+
contractKeysData.forEach(identityResult => {
205+
expect(identityResult).toHaveProperty('identityId');
206+
expect(identityResult).toHaveProperty('keys');
207+
expect(Array.isArray(identityResult.keys)).toBe(true);
208+
209+
identityResult.keys.forEach(key => {
210+
expect(key).toHaveProperty('keyId');
211+
expect(key).toHaveProperty('purpose');
212+
expect(key).toHaveProperty('keyType');
213+
expect(key).toHaveProperty('publicKeyData');
214+
expect(key).toHaveProperty('securityLevel');
215+
});
216+
});
217+
}
218+
198219
function validateIdentitiesResult(resultStr) {
199220
expect(() => JSON.parse(resultStr)).not.toThrow();
200221
const identitiesData = JSON.parse(resultStr);
@@ -1270,7 +1291,7 @@ test.describe('WASM SDK Query Execution Tests', () => {
12701291
{ name: 'getIdentityNonce', hasProofSupport: true, validateFn: (result) => validateNumericResult(result, 'nonce') },
12711292
{ name: 'getIdentityContractNonce', hasProofSupport: true, validateFn: (result) => validateNumericResult(result, 'nonce') },
12721293
{ name: 'getIdentityByPublicKeyHash', hasProofSupport: true, validateFn: validateIdentityResult },
1273-
{ name: 'getIdentitiesContractKeys', hasProofSupport: true, validateFn: validateKeysResult },
1294+
{ name: 'getIdentitiesContractKeys', hasProofSupport: true, validateFn: validateIdentitiesContractKeysResult },
12741295
{ name: 'getIdentitiesBalances', hasProofSupport: true, validateFn: validateBalancesResult },
12751296
{ name: 'getIdentityBalanceAndRevision', hasProofSupport: true, validateFn: validateBalanceAndRevisionResult },
12761297
{ name: 'getIdentityByNonUniquePublicKeyHash', hasProofSupport: true, validateFn: validateIdentitiesResult },

packages/wasm-sdk/test/ui-automation/utils/wasm-sdk-page.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,18 @@ class WasmSdkPage extends BaseTest {
120120
* Fill a specific parameter by name
121121
*/
122122
async fillParameterByName(paramName, value) {
123+
// Special handling for multiselect checkboxes (like purposes)
124+
if (paramName === 'purposes' && Array.isArray(value)) {
125+
for (const purposeValue of value) {
126+
const checkboxSelector = `input[name="purposes_${purposeValue}"][type="checkbox"]`;
127+
const checkbox = this.page.locator(checkboxSelector);
128+
if (await checkbox.count() > 0) {
129+
await checkbox.check();
130+
}
131+
}
132+
return;
133+
}
134+
123135
// Special handling for array parameters that use dynamic input fields
124136
if (DYNAMIC_ARRAY_PARAMETERS[paramName]) {
125137
const enterValueInput = this.page.locator('input[placeholder="Enter value"]').first();

0 commit comments

Comments
 (0)