@cardano-sdk/e2e 0.55.23 → 0.55.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cardano-sdk/e2e",
3
- "version": "0.55.23",
3
+ "version": "0.55.27",
4
4
  "description": "End to end tests for the cardano-js-sdk packages.",
5
5
  "repository": "https://github.com/input-output-hk/cardano-js-sdk",
6
6
  "license": "Apache-2.0",
@@ -76,20 +76,20 @@
76
76
  "dependencies": {
77
77
  "@cardano-foundation/ledgerjs-hw-app-cardano": "^7.1.4",
78
78
  "@cardano-ogmios/client": "6.9.0",
79
- "@cardano-sdk/cardano-services": "~0.35.34",
80
- "@cardano-sdk/cardano-services-client": "~0.26.32",
81
- "@cardano-sdk/core": "~0.46.12",
82
- "@cardano-sdk/crypto": "~0.4.5",
83
- "@cardano-sdk/hardware-ledger": "~0.16.23",
84
- "@cardano-sdk/hardware-trezor": "~0.7.33",
85
- "@cardano-sdk/input-selection": "~0.14.29",
86
- "@cardano-sdk/key-management": "~0.29.13",
87
- "@cardano-sdk/ogmios": "~0.18.54",
88
- "@cardano-sdk/tx-construction": "~0.28.11",
89
- "@cardano-sdk/util": "~0.17.1",
90
- "@cardano-sdk/util-dev": "~0.25.32",
91
- "@cardano-sdk/util-rxjs": "~0.9.31",
92
- "@cardano-sdk/wallet": "~0.54.4",
79
+ "@cardano-sdk/cardano-services": "~0.35.38",
80
+ "@cardano-sdk/cardano-services-client": "~0.26.36",
81
+ "@cardano-sdk/core": "~0.46.15",
82
+ "@cardano-sdk/crypto": "~0.4.7",
83
+ "@cardano-sdk/hardware-ledger": "~0.16.27",
84
+ "@cardano-sdk/hardware-trezor": "~0.7.37",
85
+ "@cardano-sdk/input-selection": "~0.14.33",
86
+ "@cardano-sdk/key-management": "~0.29.17",
87
+ "@cardano-sdk/ogmios": "~0.18.58",
88
+ "@cardano-sdk/tx-construction": "~0.28.15",
89
+ "@cardano-sdk/util": "~0.17.2",
90
+ "@cardano-sdk/util-dev": "~0.25.36",
91
+ "@cardano-sdk/util-rxjs": "~0.9.35",
92
+ "@cardano-sdk/wallet": "~0.54.8",
93
93
  "@dcspark/cardano-multiplatform-lib-nodejs": "^3.1.1",
94
94
  "@emurgo/cardano-message-signing-nodejs": "^1.0.1",
95
95
  "@shiroyasha9/axios-fetch-adapter": "1.0.3",
@@ -97,7 +97,7 @@
97
97
  "bunyan": "^1.8.15",
98
98
  "chalk": "4.1.2",
99
99
  "cli-spinners": "^2.9.0",
100
- "convict": "^6.2.4",
100
+ "convict": "^6.2.5",
101
101
  "delay": "5.0.0",
102
102
  "dotenv": "^16.0.1",
103
103
  "envalid": "^7.3.1",
@@ -112,7 +112,7 @@
112
112
  "ts-log": "^2.2.4",
113
113
  "ts-node": "^10.8.1",
114
114
  "ts-stopwatch": "0.0.4",
115
- "uuid": "^8.3.2",
115
+ "uuid": "^11.1.1",
116
116
  "webextension-polyfill": "^0.8.0",
117
117
  "ws": "^8.5.0"
118
118
  },
@@ -120,10 +120,10 @@
120
120
  "@babel/core": "^7.18.2",
121
121
  "@babel/preset-env": "^7.18.2",
122
122
  "@babel/preset-typescript": "^7.17.12",
123
- "@cardano-sdk/dapp-connector": "~0.13.26",
124
- "@cardano-sdk/projection": "~0.13.15",
125
- "@cardano-sdk/projection-typeorm": "~0.10.15",
126
- "@cardano-sdk/web-extension": "~0.39.40",
123
+ "@cardano-sdk/dapp-connector": "~0.13.29",
124
+ "@cardano-sdk/projection": "~0.13.19",
125
+ "@cardano-sdk/projection-typeorm": "~0.10.19",
126
+ "@cardano-sdk/web-extension": "~0.39.44",
127
127
  "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
128
128
  "@emurgo/cardano-message-signing-asmjs": "^1.0.1",
129
129
  "@types/bunyan": "^1.8.8",
@@ -135,32 +135,29 @@
135
135
  "@types/k6": "^0.53.1",
136
136
  "@types/lodash": "^4.14.182",
137
137
  "@types/ora": "^3.2.0",
138
- "@types/uuid": "^8.3.4",
139
138
  "@types/webextension-polyfill": "^0.8.0",
140
- "@wdio/cli": "^7.19.5",
141
- "@wdio/local-runner": "^7.19.5",
142
- "@wdio/mocha-framework": "^7.19.5",
143
- "@wdio/spec-reporter": "^7.19.5",
144
- "@wdio/static-server-service": "^7.19.5",
145
- "artillery": "^2.0.0-35",
139
+ "@wdio/cli": "^9.29.0",
140
+ "@wdio/local-runner": "^9.29.0",
141
+ "@wdio/mocha-framework": "^9.29.0",
142
+ "@wdio/spec-reporter": "^9.29.0",
143
+ "@wdio/static-server-service": "^9.29.0",
144
+ "artillery": "^2.0.33",
146
145
  "axios-mock-adapter": "^2.0.0",
147
146
  "babel-loader": "^8.2.5",
148
147
  "blake2b-no-wasm": "2.1.4",
149
148
  "buffer": "^6.0.3",
150
- "chromedriver": "^127.0.0",
151
149
  "copy-webpack-plugin": "^10.2.4",
152
150
  "crypto-browserify": "^3.12.0",
153
151
  "delay": "^5.0.0",
154
- "dockerode": "^3.3.1",
152
+ "dockerode": "^4.0.7",
155
153
  "dockerode-utils": "^0.0.7",
156
154
  "eslint": "^7.32.0",
157
155
  "events": "^3.3.0",
158
- "expect-webdriverio": "^3.2.1",
156
+ "expect-webdriverio": "^5.6.8",
159
157
  "jest": "^28.1.3",
160
158
  "jest-webextension-mock": "^3.7.22",
161
159
  "json-bigint": "^1.0.0",
162
160
  "madge": "^5.0.1",
163
- "mock-browser": "^0.92.14",
164
161
  "npm-run-all": "^4.1.5",
165
162
  "null-loader": "^4.0.1",
166
163
  "readable-stream": "^3.6.0",
@@ -170,19 +167,19 @@
170
167
  "typeorm": "^0.3.15",
171
168
  "typeorm-extension": "^2.7.0",
172
169
  "typescript": "^4.7.4",
170
+ "url": "^0.11.4",
173
171
  "util": "^0.12.4",
174
- "wdio-chromedriver-service": "^7.3.2",
175
172
  "webassembly-loader-sw": "^1.1.0",
176
- "webdriverio": "^7.20.5",
173
+ "webdriverio": "^9.29.0",
177
174
  "webpack": "^5.72.0",
178
175
  "webpack-cli": "^4.9.2",
179
176
  "webpack-merge": "^5.8.0"
180
177
  },
181
178
  "engines": {
182
- "node": ">=16.20.2"
179
+ "node": ">=22"
183
180
  },
184
181
  "publishConfig": {
185
182
  "access": "public"
186
183
  },
187
- "gitHead": "5fd89b1a0c1d1cc0682f45f915e423ba29cd2279"
184
+ "gitHead": "545a7f5c59ddb0b17781cdf759dcf9ed50e1a739"
188
185
  }
@@ -102,7 +102,10 @@ export class MeasurementUtil<T extends string> {
102
102
 
103
103
  for (const measureEntry of performance
104
104
  .getEntriesByType('measure')
105
- .map(({ duration, detail }) => ({ duration, target: (detail as MarkerDetail<T>).target }))
105
+ .map((entry) => ({
106
+ duration: entry.duration,
107
+ target: (entry as unknown as { detail: MarkerDetail<T> }).detail.target
108
+ }))
106
109
  .filter(({ target }) => targets?.some((t) => t === target))) {
107
110
  const data = measurementData[measureEntry.target];
108
111
  if (!data.time) {
@@ -125,8 +128,8 @@ export class MeasurementUtil<T extends string> {
125
128
  // Count all the start markers. They all have the 'target' detail added. Stop markers don't have it
126
129
  for (const targetName of performance
127
130
  .getEntriesByType('mark')
128
- .map(({ detail }) => (detail as MarkerDetail<T>)?.target)
129
- .filter((target) => target && targets?.some((t) => t === target))) {
131
+ .map((entry) => (entry as unknown as { detail?: MarkerDetail<T> }).detail?.target)
132
+ .filter((target): target is T => !!target && !!targets?.some((t) => t === target))) {
130
133
  measurementData[targetName].calls_count++;
131
134
  }
132
135
 
@@ -19,7 +19,7 @@ jest.mock('perf_hooks', () => ({
19
19
  type measureTargets = 't1' | 't2';
20
20
  describe('MeasurementUtil', () => {
21
21
  let measurementUtil: MeasurementUtil<measureTargets>;
22
- let mockData: Partial<PerformanceEntry>[];
22
+ let mockData: (Partial<PerformanceEntry> & { detail: { id: number; target: string } })[];
23
23
 
24
24
  beforeEach(() => {
25
25
  measurementUtil = new MeasurementUtil<measureTargets>();
@@ -1,6 +1,5 @@
1
- import { BaseWallet, FinalizeTxProps } from '@cardano-sdk/wallet';
1
+ import { BaseWallet } from '@cardano-sdk/wallet';
2
2
  import { Cardano, nativeScriptPolicyId } from '@cardano-sdk/core';
3
- import { InitializeTxProps } from '@cardano-sdk/tx-construction';
4
3
  import { KeyRole, util } from '@cardano-sdk/key-management';
5
4
  import {
6
5
  bip32Ed25519Factory,
@@ -66,38 +65,16 @@ describe('PersonalWallet/mint', () => {
66
65
 
67
66
  const policyId = nativeScriptPolicyId(policyScript);
68
67
  const assetId = Cardano.AssetId(`${policyId}`); // skip asset name
69
- const tokens = new Map([[assetId, 1n]]);
70
68
 
71
- const walletAddress = (await firstValueFrom(wallet.addresses$))[0].address;
69
+ // Mint through the fluent transaction builder. The minted asset is balanced into the wallet's
70
+ // change; the policy requires Alice's signature, supplied as an extra signer.
71
+ const { tx: signedTx } = await wallet
72
+ .createTxBuilder()
73
+ .addMint({ assets: new Map([[Cardano.AssetName(''), 1n]]), policy: policyScript })
74
+ .extraSigners([alicePolicySigner])
75
+ .build()
76
+ .sign();
72
77
 
73
- const txProps: InitializeTxProps = {
74
- mint: tokens,
75
- outputs: new Set([
76
- {
77
- address: walletAddress,
78
- value: {
79
- assets: tokens,
80
- coins
81
- }
82
- }
83
- ]),
84
- signingOptions: {
85
- extraSigners: [alicePolicySigner]
86
- },
87
- witness: { scripts: [policyScript] }
88
- };
89
-
90
- const unsignedTx = await wallet.initializeTx(txProps);
91
-
92
- const finalizeProps: FinalizeTxProps = {
93
- signingOptions: {
94
- extraSigners: [alicePolicySigner]
95
- },
96
- tx: unsignedTx,
97
- witness: { scripts: [policyScript] }
98
- };
99
-
100
- const signedTx = await wallet.finalizeTx(finalizeProps);
101
78
  const [, txFoundInHistory] = await submitAndConfirm(wallet, signedTx, 1);
102
79
 
103
80
  expect(txFoundInHistory.id).toEqual(signedTx.id);
@@ -128,7 +128,7 @@ describe('PersonalWallet/phase2validation', () => {
128
128
  }
129
129
  }
130
130
  ]),
131
- redeemersByType: { [Cardano.RedeemerPurpose.mint]: [scriptRedeemer] },
131
+ redeemersByType: { mint: new Map([[policyId, scriptRedeemer]]) },
132
132
  scriptIntegrityHash: scriptDataHash,
133
133
  witness: { redeemers: [scriptRedeemer], scripts: [alwaysFailScript] }
134
134
  };
@@ -24,7 +24,7 @@ describe('dapp/cip30', () => {
24
24
  });
25
25
 
26
26
  it('dapp should detect test wallet', async () => {
27
- await expect($(pWalletFound)).toHaveTextContaining('true');
27
+ await expect($(pWalletFound)).toHaveText('true', { containing: true });
28
28
  });
29
29
 
30
30
  describe('dapp can use cip30 wallet api', () => {
@@ -50,14 +50,14 @@ describe('dapp/cip30', () => {
50
50
  });
51
51
 
52
52
  it('dapp gets correct addresses from cip30 wallet api', async () => {
53
- await expect($(dappChangeAddress)).toHaveTextContaining(walletAddr);
54
- await expect($(dappStakeAddress)).toHaveTextContaining(walletStakeAddr);
55
- await expect($(dappUsedAddress)).toHaveTextContaining(walletAddr);
53
+ await expect($(dappChangeAddress)).toHaveText(walletAddr, { containing: true });
54
+ await expect($(dappStakeAddress)).toHaveText(walletStakeAddr, { containing: true });
55
+ await expect($(dappUsedAddress)).toHaveText(walletAddr, { containing: true });
56
56
  });
57
57
 
58
58
  it('dapp can build and send a transaction using cip30 WalletApi', async () => {
59
59
  await $(dappBtnRun).click();
60
- await expect($(dappSubmittedTxConfirmation)).toHaveTextContaining('check your wallet');
60
+ await expect($(dappSubmittedTxConfirmation)).toHaveText('check your wallet', { containing: true });
61
61
  });
62
62
  });
63
63
  });
@@ -42,7 +42,7 @@ describe('dapp/cip95', () => {
42
42
  });
43
43
 
44
44
  it('dapp should detect test wallet', async () => {
45
- await expect($(pWalletFound)).toHaveTextContaining('true');
45
+ await expect($(pWalletFound)).toHaveText('true', { containing: true });
46
46
  });
47
47
 
48
48
  describe('dapp can use cip95 wallet api', () => {
@@ -68,9 +68,9 @@ describe('dapp/cip95', () => {
68
68
  });
69
69
 
70
70
  it('dapp gets correct addresses from cip95 wallet api', async () => {
71
- await expect($(dappChangeAddress)).toHaveTextContaining(walletAddr);
72
- await expect($(dappStakeAddress)).toHaveTextContaining(walletStakeAddr);
73
- await expect($(dappUsedAddress)).toHaveTextContaining(walletAddr);
71
+ await expect($(dappChangeAddress)).toHaveText(walletAddr, { containing: true });
72
+ await expect($(dappStakeAddress)).toHaveText(walletStakeAddr, { containing: true });
73
+ await expect($(dappUsedAddress)).toHaveText(walletAddr, { containing: true });
74
74
  });
75
75
 
76
76
  it('getRegisteredPubStakeKeys gets active public stake keys from cip95 wallet api', async () => {
@@ -81,12 +81,12 @@ describe('dapp/cip95', () => {
81
81
  it('getPubDRepKey gets the DRep key from cip95 wallet api', async () => {
82
82
  const dappDrepKey = await $(dappGetPubDrepKey).getText();
83
83
  expect(dappDrepKey.length).toBeGreaterThan(0);
84
- await expect($(dappDrepId)).toHaveTextContaining('drep');
84
+ await expect($(dappDrepId)).toHaveText('drep', { containing: true });
85
85
  });
86
86
 
87
87
  it('supportedExtensions and getExtensions both return cip95', async () => {
88
- await expect($(liSupportedExtensions)).toHaveTextContaining('95');
89
- await expect($(liGetExtensions)).toHaveTextContaining('95');
88
+ await expect($(liSupportedExtensions)).toHaveText('95', { containing: true });
89
+ await expect($(liGetExtensions)).toHaveText('95', { containing: true });
90
90
  });
91
91
  });
92
92
  });
@@ -76,8 +76,8 @@ describe('wallet', () => {
76
76
  });
77
77
  walletAddr1 = await $(spanAddress).getText();
78
78
  walletStakeAddr1 = await $(spanStakeAddress).getText();
79
- expect(walletAddr1).toHaveTextContaining('addr');
80
- expect(walletStakeAddr1).toHaveTextContaining('stake');
79
+ expect(walletAddr1).toContain('addr');
80
+ expect(walletStakeAddr1).toContain('stake');
81
81
  await expect($(activeWalletName)).toHaveText(getObservableWalletName(0));
82
82
  });
83
83
  });
@@ -102,14 +102,14 @@ describe('wallet', () => {
102
102
 
103
103
  // Delegation transaction was submitted successfully
104
104
  const txId = await $('#multiDelegation .delegateTxId').getText();
105
- expect(txId).toHaveTextContaining('TxId');
105
+ expect(txId).toContain('TxId');
106
106
 
107
107
  // Wallet reports delegating to 3 pools
108
108
  await browser.waitUntil(
109
109
  async () => {
110
110
  try {
111
- const delegatedPools = await $$(liPools);
112
- return delegatedPools.length === NUM_POOLS;
111
+ const delegatedPoolCount = await $$(liPools).length;
112
+ return delegatedPoolCount === NUM_POOLS;
113
113
  } catch {
114
114
  return false;
115
115
  }
@@ -125,8 +125,8 @@ describe('wallet', () => {
125
125
  it('can switch to another wallet', async () => {
126
126
  // Automatically deactivates first wallet, but keeps the store available for future activation
127
127
  await $(btnActivateWallet2).click();
128
- await expect($(spanAddress)).not.toHaveTextContaining(walletAddr1);
129
- await expect($(spanAddress)).toHaveTextContaining('addr');
128
+ await expect($(spanAddress)).not.toHaveText(walletAddr1, { containing: true });
129
+ await expect($(spanAddress)).toHaveText('addr', { containing: true });
130
130
  await expect($(activeWalletName)).toHaveText(getObservableWalletName(1));
131
131
  });
132
132
 
@@ -138,10 +138,10 @@ describe('wallet', () => {
138
138
  it('can destroy second wallet before switching back to the first wallet', async () => {
139
139
  // Destroy also clears associated store. Store will be rebuilt during future activation of same wallet
140
140
  await $(destroyWallet).click();
141
- await expect($(spanAddress)).toHaveTextContaining('-');
141
+ await expect($(spanAddress)).toHaveText('-', { containing: true });
142
142
 
143
143
  await $(btnActivateWallet1).click();
144
- await expect($(spanAddress)).toHaveTextContaining(walletAddr1);
144
+ await expect($(spanAddress)).toHaveText(walletAddr1, { containing: true });
145
145
  await expect($(activeWalletName)).toHaveText(getObservableWalletName(0));
146
146
  });
147
147
 
@@ -4,7 +4,7 @@
4
4
  "baseUrl": "./extension",
5
5
  "types": [
6
6
  "node",
7
- "webdriverio/async",
7
+ "@wdio/globals/types",
8
8
  "@wdio/mocha-framework",
9
9
  "expect-webdriverio"
10
10
  ]
@@ -2,13 +2,6 @@ const path = require('path');
2
2
 
3
3
  module.exports = {
4
4
  config: {
5
- autoCompileOpts: {
6
- autoCompile: true,
7
- tsNodeOpts: {
8
- project: 'test/web-extension/tsconfig.json',
9
- transpileOnly: true
10
- }
11
- },
12
5
  bail: 0,
13
6
  baseUrl: 'http://localhost:4567',
14
7
  capabilities: [
@@ -51,10 +44,11 @@ module.exports = {
51
44
  { mount: '/cip95-cardano-wallet-connector', path: path.join(__dirname, 'dapp-cip95/build') }
52
45
  ]
53
46
  }
54
- ],
55
- 'chromedriver'
47
+ ]
56
48
  ],
57
49
  specs: ['./**/*.spec.ts'],
50
+ // WebdriverIO v8+ auto-compiles TS via tsx; point it at the local tsconfig
51
+ tsConfigPath: path.join(__dirname, 'tsconfig.json'),
58
52
  waitforTimeout: 10_000
59
53
  }
60
54
  };
@@ -88,6 +88,7 @@ module.exports = {
88
88
  perf_hooks: false,
89
89
  process: false,
90
90
  stream: require.resolve('readable-stream'),
91
+ url: require.resolve('url/'),
91
92
  util: require.resolve('util/')
92
93
  }
93
94
  },