@acala-network/chopsticks-testing 0.7.1 → 0.7.3

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/lib/check.js CHANGED
@@ -1,9 +1,12 @@
1
- import { expect } from 'vitest';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkHrmp = exports.checkUmp = exports.checkSystemEvents = exports.checkEvents = exports.check = exports.Checker = void 0;
4
+ const vitest_1 = require("vitest");
2
5
  const processCodecOrArray = (codec, fn) => Array.isArray(codec) ? codec.map(fn) : fn(codec);
3
6
  const toHuman = (codec) => processCodecOrArray(codec, (c) => c?.toHuman?.() ?? c);
4
7
  const toHex = (codec) => processCodecOrArray(codec, (c) => c?.toHex?.() ?? c);
5
8
  const toJson = (codec) => processCodecOrArray(codec, (c) => c?.toJSON?.() ?? c);
6
- export class Checker {
9
+ class Checker {
7
10
  #value;
8
11
  #pipeline = [];
9
12
  #format = 'json';
@@ -145,10 +148,11 @@ export class Checker {
145
148
  return value;
146
149
  }
147
150
  async toMatchSnapshot(msg) {
148
- return expect(await this.value()).toMatchSnapshot(msg ?? this.#message);
151
+ return (0, vitest_1.expect)(await this.value()).toMatchSnapshot(msg ?? this.#message);
149
152
  }
150
153
  }
151
- export const check = (value, msg) => {
154
+ exports.Checker = Checker;
155
+ const check = (value, msg) => {
152
156
  if (value instanceof Checker) {
153
157
  if (msg) {
154
158
  return value.message(msg);
@@ -157,14 +161,19 @@ export const check = (value, msg) => {
157
161
  }
158
162
  return new Checker(value, msg);
159
163
  };
160
- export const checkEvents = ({ events }, ...filters) => check(events, 'events')
164
+ exports.check = check;
165
+ const checkEvents = ({ events }, ...filters) => (0, exports.check)(events, 'events')
161
166
  .filterEvents(...filters)
162
167
  .redact();
163
- export const checkSystemEvents = ({ api }, ...filters) => check(api.query.system.events(), 'system events')
168
+ exports.checkEvents = checkEvents;
169
+ const checkSystemEvents = ({ api }, ...filters) => (0, exports.check)(api.query.system.events(), 'system events')
164
170
  .filterEvents(...filters)
165
171
  .redact();
166
- export const checkUmp = ({ api }) => check(api.query.parachainSystem.upwardMessages(), 'ump').map((value) => api.createType('Vec<XcmVersionedXcm>', value).toJSON());
167
- export const checkHrmp = ({ api }) => check(api.query.parachainSystem.hrmpOutboundMessages(), 'hrmp').map((value) => value.map(({ recipient, data }) => ({
172
+ exports.checkSystemEvents = checkSystemEvents;
173
+ const checkUmp = ({ api }) => (0, exports.check)(api.query.parachainSystem.upwardMessages(), 'ump').map((value) => api.createType('Vec<XcmVersionedXcm>', value).toJSON());
174
+ exports.checkUmp = checkUmp;
175
+ const checkHrmp = ({ api }) => (0, exports.check)(api.query.parachainSystem.hrmpOutboundMessages(), 'hrmp').map((value) => value.map(({ recipient, data }) => ({
168
176
  data: api.createType('(XcmpMessageFormat, XcmVersionedXcm)', data),
169
177
  recipient,
170
178
  })));
179
+ exports.checkHrmp = checkHrmp;
package/lib/index.js CHANGED
@@ -1,9 +1,26 @@
1
- import { ApiPromise, WsProvider } from '@polkadot/api';
2
- import { BuildBlockMode, connectParachains, connectVertical, fetchConfig, setupWithServer, } from '@acala-network/chopsticks';
3
- import { Keyring, createTestKeyring } from '@polkadot/keyring';
4
- import { expect } from 'vitest';
5
- export * from './check';
6
- export const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, db, timeout, port, }) => {
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.testingPairs = exports.sendTransaction = exports.defer = exports.redact = exports.matchSystemEvents = exports.matchEvents = exports.expectHex = exports.expectJson = exports.setupNetworks = exports.setupContextWithConfig = exports.setupContext = exports.createConfig = void 0;
18
+ const api_1 = require("@polkadot/api");
19
+ const chopsticks_1 = require("@acala-network/chopsticks");
20
+ const keyring_1 = require("@polkadot/keyring");
21
+ const vitest_1 = require("vitest");
22
+ __exportStar(require("./check"), exports);
23
+ const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, db, timeout, port, }) => {
7
24
  // random port if not specified
8
25
  port = port ?? Math.floor(Math.random() * 10000) + 10000;
9
26
  const config = {
@@ -11,21 +28,23 @@ export const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, d
11
28
  port,
12
29
  block: blockNumber || blockHash,
13
30
  mockSignatureHost: true,
14
- 'build-block-mode': BuildBlockMode.Manual,
31
+ 'build-block-mode': chopsticks_1.BuildBlockMode.Manual,
15
32
  db,
16
33
  'wasm-override': wasmOverride,
17
34
  timeout,
18
35
  };
19
36
  return config;
20
37
  };
21
- export const setupContext = async (option) => {
22
- return setupContextWithConfig(createConfig(option));
38
+ exports.createConfig = createConfig;
39
+ const setupContext = async (option) => {
40
+ return (0, exports.setupContextWithConfig)((0, exports.createConfig)(option));
23
41
  };
24
- export const setupContextWithConfig = async ({ timeout, ...config }) => {
25
- const { chain, listenPort, close } = await setupWithServer(config);
42
+ exports.setupContext = setupContext;
43
+ const setupContextWithConfig = async ({ timeout, ...config }) => {
44
+ const { chain, listenPort, close } = await (0, chopsticks_1.setupWithServer)(config);
26
45
  const url = `ws://localhost:${listenPort}`;
27
- const ws = new WsProvider(url, undefined, undefined, timeout);
28
- const api = await ApiPromise.create({
46
+ const ws = new api_1.WsProvider(url, undefined, undefined, timeout);
47
+ const api = await api_1.ApiPromise.create({
29
48
  provider: ws,
30
49
  signedExtensions: {
31
50
  SetEvmOrigin: {
@@ -59,31 +78,32 @@ export const setupContextWithConfig = async ({ timeout, ...config }) => {
59
78
  await close();
60
79
  },
61
80
  async pause() {
62
- await ws.send('dev_setBlockBuildMode', [BuildBlockMode.Instant]);
81
+ await ws.send('dev_setBlockBuildMode', [chopsticks_1.BuildBlockMode.Instant]);
63
82
  // log a bit later to ensure the message is visible
64
83
  setTimeout(() => console.log(`Test paused. Polkadot.js apps URL: https://polkadot.js.org/apps/?rpc=${url}`), 100);
65
84
  return new Promise((_resolve) => { }); // wait forever
66
85
  },
67
86
  };
68
87
  };
69
- export const setupNetworks = async (networkOptions) => {
88
+ exports.setupContextWithConfig = setupContextWithConfig;
89
+ const setupNetworks = async (networkOptions) => {
70
90
  const ret = {};
71
91
  let wasmOverriden = false;
72
92
  for (const [name, options] of Object.entries(networkOptions)) {
73
- const config = typeof options === 'string' ? await fetchConfig(options) : options ?? (await fetchConfig(name));
74
- ret[name] = await setupContextWithConfig(config);
93
+ const config = typeof options === 'string' ? await (0, chopsticks_1.fetchConfig)(options) : options ?? (await (0, chopsticks_1.fetchConfig)(name));
94
+ ret[name] = await (0, exports.setupContextWithConfig)(config);
75
95
  wasmOverriden ||= config['wasm-override'] != null;
76
96
  }
77
97
  const relaychainName = Object.keys(ret).filter((x) => ['polkadot', 'kusama'].includes(x.toLocaleLowerCase()))[0];
78
98
  const { [relaychainName]: relaychain, ...parachains } = ret;
79
99
  if (relaychain) {
80
100
  for (const parachain of Object.values(parachains)) {
81
- await connectVertical(relaychain.chain, parachain.chain);
101
+ await (0, chopsticks_1.connectVertical)(relaychain.chain, parachain.chain);
82
102
  }
83
103
  }
84
104
  const parachainList = Object.values(parachains).map((i) => i.chain);
85
105
  if (parachainList.length > 0) {
86
- await connectParachains(parachainList);
106
+ await (0, chopsticks_1.connectParachains)(parachainList);
87
107
  }
88
108
  if (wasmOverriden) {
89
109
  // trigger runtime upgrade if needed (due to wasm override)
@@ -97,16 +117,19 @@ export const setupNetworks = async (networkOptions) => {
97
117
  }
98
118
  return ret;
99
119
  };
120
+ exports.setupNetworks = setupNetworks;
100
121
  const processCodecOrArray = (codec, fn) => Array.isArray(codec) ? codec.map(fn) : fn(codec);
101
122
  const toHuman = (codec) => processCodecOrArray(codec, (c) => c?.toHuman?.() ?? c);
102
123
  const toJson = (codec) => processCodecOrArray(codec, (c) => c?.toJSON?.() ?? c);
103
124
  const toHex = (codec) => processCodecOrArray(codec, (c) => c?.toHex?.() ?? c);
104
- export const expectJson = (codec) => {
105
- return expect(toJson(codec));
125
+ const expectJson = (codec) => {
126
+ return (0, vitest_1.expect)(toJson(codec));
106
127
  };
107
- export const expectHex = (codec) => {
108
- return expect(toHex(codec));
128
+ exports.expectJson = expectJson;
129
+ const expectHex = (codec) => {
130
+ return (0, vitest_1.expect)(toHex(codec));
109
131
  };
132
+ exports.expectHex = expectHex;
110
133
  const _matchEvents = async (msg, events, ...filters) => {
111
134
  let data = toHuman(await events).map(({ event: { index: _, ...event } }) => event);
112
135
  if (filters.length > 0) {
@@ -121,15 +144,17 @@ const _matchEvents = async (msg, events, ...filters) => {
121
144
  });
122
145
  });
123
146
  }
124
- return expect(data).toMatchSnapshot(msg);
147
+ return (0, vitest_1.expect)(data).toMatchSnapshot(msg);
125
148
  };
126
- export const matchEvents = async (events, ...filters) => {
127
- return _matchEvents('events', redact(events), ...filters);
149
+ const matchEvents = async (events, ...filters) => {
150
+ return _matchEvents('events', (0, exports.redact)(events), ...filters);
128
151
  };
129
- export const matchSystemEvents = async ({ api }, ...filters) => {
130
- await _matchEvents('system events', redact(api.query.system.events()), ...filters);
152
+ exports.matchEvents = matchEvents;
153
+ const matchSystemEvents = async ({ api }, ...filters) => {
154
+ await _matchEvents('system events', (0, exports.redact)(api.query.system.events()), ...filters);
131
155
  };
132
- export const redact = async (data) => {
156
+ exports.matchSystemEvents = matchSystemEvents;
157
+ const redact = async (data) => {
133
158
  const json = toHuman(await data);
134
159
  const process = (obj) => {
135
160
  if (obj == null) {
@@ -166,7 +191,8 @@ export const redact = async (data) => {
166
191
  };
167
192
  return process(json);
168
193
  };
169
- export function defer() {
194
+ exports.redact = redact;
195
+ function defer() {
170
196
  const deferred = {};
171
197
  deferred.promise = new Promise((resolve, reject) => {
172
198
  deferred.resolve = resolve;
@@ -174,7 +200,8 @@ export function defer() {
174
200
  });
175
201
  return deferred;
176
202
  }
177
- export const sendTransaction = async (tx) => {
203
+ exports.defer = defer;
204
+ const sendTransaction = async (tx) => {
178
205
  const signed = await tx;
179
206
  const deferred = defer();
180
207
  await signed.send((status) => {
@@ -190,10 +217,11 @@ export const sendTransaction = async (tx) => {
190
217
  events: deferred.promise,
191
218
  };
192
219
  };
193
- export const testingPairs = (keyringType = 'ed25519', ss58Format) => {
194
- const keyringEth = createTestKeyring({ type: 'ethereum' });
220
+ exports.sendTransaction = sendTransaction;
221
+ const testingPairs = (keyringType = 'ed25519', ss58Format) => {
222
+ const keyringEth = (0, keyring_1.createTestKeyring)({ type: 'ethereum' });
195
223
  // default to ed25519 because sr25519 signature is non-deterministic
196
- const keyring = new Keyring({ type: keyringType, ss58Format });
224
+ const keyring = new keyring_1.Keyring({ type: keyringType, ss58Format });
197
225
  return {
198
226
  alice: keyring.addFromUri('//Alice'),
199
227
  bob: keyring.addFromUri('//Bob'),
@@ -209,3 +237,4 @@ export const testingPairs = (keyringType = 'ed25519', ss58Format) => {
209
237
  keyringEth,
210
238
  };
211
239
  };
240
+ exports.testingPairs = testingPairs;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acala-network/chopsticks-testing",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "author": "Bryan Chen <xlchen1291@gmail.com>",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
@@ -8,7 +8,7 @@
8
8
  "build": "tsc -p ./tsconfig.json"
9
9
  },
10
10
  "dependencies": {
11
- "@acala-network/chopsticks": "0.7.1"
11
+ "@acala-network/chopsticks": "0.7.3"
12
12
  },
13
13
  "peerDependencies": {
14
14
  "vitest": "^0.33.0"