@clarigen/test 1.0.0-next.21 → 1.0.0-next.25

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CoreNodeEvent, ResultAssets, Contracts, ContractFactory, AllContracts, ContractCall, Response, ContractCalls, ContractInstances } from '@clarigen/core';
1
+ import { CoreNodeEvent, ResultAssets, Contracts, ContractFactory, AllContracts, ContractCall, Response, ContractCalls, ContractInstances, ResponseOk, ResponseErr } from '@clarigen/core';
2
2
  import { Costs, NativeClarityBinProvider, ClarinetAccounts } from '@clarigen/native-bin';
3
3
  export { Allocation, createClarityBin, evalJson, executeJson } from '@clarigen/native-bin';
4
4
  import { ClarityValue, ResponseCV } from 'micro-stacks/clarity';
@@ -29,7 +29,7 @@ interface PublicResultOk<T> extends PublicResultBase<T> {
29
29
  assets: ResultAssets;
30
30
  prints: any[];
31
31
  }
32
- declare type PublicResult<Ok, Err> = PublicResultOk<Ok> | PublicResultErr<Err>;
32
+ declare type PublicResult<R> = PublicResultOk<R> | PublicResultErr<R>;
33
33
 
34
34
  declare type Provider = NativeClarityBinProvider | {
35
35
  clarityBin: NativeClarityBinProvider;
@@ -47,11 +47,14 @@ interface FromContractsOptions {
47
47
  accounts?: ClarinetAccounts;
48
48
  clarityBin?: NativeClarityBinProvider;
49
49
  coverageFolder?: string;
50
+ clarinetPath?: string;
50
51
  }
51
52
  interface FromContracts<T extends Contracts<any>> {
52
53
  deployed: ContractInstances<T>;
53
54
  provider: TestProvider;
54
55
  }
56
+ declare type OkType<T> = T extends ResponseOk<infer Ok, unknown> ? Ok : never;
57
+ declare type ErrType<T> = T extends ResponseErr<unknown, infer Err> ? Err : never;
55
58
  declare class TestProvider {
56
59
  clarityBin: NativeClarityBinProvider;
57
60
  coverageFolder?: string;
@@ -60,13 +63,13 @@ declare class TestProvider {
60
63
  static fromFactory(contracts: ContractFactory<AllContracts>, options?: FromContractsOptions): Promise<TestProvider>;
61
64
  ro<T>(tx: ContractCall<T>): Promise<ReadOnlyResult<T>>;
62
65
  rov<T>(tx: ContractCall<T>): Promise<T>;
63
- roOk<Ok, Err>(tx: ContractCall<Response<Ok, Err>>): Promise<ReadOnlyResult<Ok>>;
64
- roErr<Ok, Err>(tx: ContractCall<Response<Ok, Err>>): Promise<ReadOnlyResult<Err>>;
65
- rovOk<Ok, Err>(tx: ContractCall<Response<Ok, Err>>): Promise<Ok>;
66
- rovErr<Ok, Err>(tx: ContractCall<Response<Ok, Err>>): Promise<Err>;
67
- tx<Ok, Err>(tx: ContractCalls.Public<Ok, Err>, senderAddress: string): Promise<PublicResult<Ok, Err>>;
68
- txOk<Ok, Err>(tx: ContractCalls.Public<Ok, Err>, senderAddress: string): Promise<PublicResultOk<Ok>>;
69
- txErr<Ok, Err>(tx: ContractCalls.Public<Ok, Err>, senderAddress: string): Promise<PublicResultErr<Err>>;
66
+ roOk<R extends Response<unknown, unknown>>(tx: ContractCall<R>): Promise<ReadOnlyResult<OkType<R>>>;
67
+ roErr<R extends Response<unknown, unknown>>(tx: ContractCall<R>): Promise<ReadOnlyResult<ErrType<R>>>;
68
+ rovOk<R extends Response<unknown, unknown>>(tx: ContractCall<R>): Promise<OkType<R>>;
69
+ rovErr<R extends Response<unknown, unknown>>(tx: ContractCall<R>): Promise<ErrType<R>>;
70
+ tx<R extends Response<unknown, unknown>>(tx: ContractCall<R>, senderAddress: string): Promise<PublicResult<R>>;
71
+ txOk<R extends Response<unknown, unknown>>(tx: ContractCall<R>, senderAddress: string): Promise<PublicResultOk<OkType<R>>>;
72
+ txErr<R extends Response<unknown, unknown>>(tx: ContractCall<R>, senderAddress: string): Promise<PublicResultErr<ErrType<R>>>;
70
73
  evalCode<T>(code: string, contractAddress?: string): Promise<ReadOnlyResult<T>>;
71
74
  eval<T>(code: string, contractAddress?: string): Promise<T>;
72
75
  mapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T): Promise<Val | null>;
package/dist/index.js CHANGED
@@ -141,6 +141,8 @@ function makeRandomAddress(version = _crypto.StacksNetworkVersion.testnetP2PKH)
141
141
 
142
142
 
143
143
 
144
+
145
+
144
146
  function getPrints(events) {
145
147
  return _core.filterEvents.call(void 0, events, _core.CoreNodeEventType.ContractEvent).map((e) => {
146
148
  const hex = e.contract_event.raw_value;
@@ -213,10 +215,11 @@ async function tx({
213
215
  });
214
216
  const resultCV = _clarity.hexToCV.call(void 0, result.output_serialized);
215
217
  const value = _core.cvToValue.call(void 0, resultCV);
218
+ const resp = result.success ? _core.ok.call(void 0, value) : _core.err.call(void 0, value);
216
219
  const baseReturn = {
217
- value,
218
220
  logs: getLogs(result.stderr),
219
- costs: result.costs
221
+ costs: result.costs,
222
+ value: resp
220
223
  };
221
224
  if (result.success) {
222
225
  return __spreadProps(__spreadValues({}, baseReturn), {
@@ -298,7 +301,10 @@ var TestProvider = class {
298
301
  for (const k in contracts) {
299
302
  if (Object.prototype.hasOwnProperty.call(contracts, k)) {
300
303
  const contract = contracts[k];
301
- const contractFilePath = contract.contractFile;
304
+ let contractFilePath = contract.contractFile;
305
+ if (options.clarinetPath) {
306
+ contractFilePath = _path.resolve.call(void 0, process.cwd(), options.clarinetPath, contractFilePath);
307
+ }
302
308
  if (typeof contractFilePath === "undefined") {
303
309
  throw new Error("Cannot setup @clarigen/test - missing contract file.");
304
310
  }
@@ -351,15 +357,21 @@ var TestProvider = class {
351
357
  }
352
358
  async txOk(tx2, senderAddress) {
353
359
  const result = await this.tx(tx2, senderAddress);
360
+ const value = _core.expectOk.call(void 0, result.value);
354
361
  if (!result.isOk)
355
362
  throw new Error(`Expected OK, received error: ${String(result.value)}`);
356
- return result;
363
+ return __spreadProps(__spreadValues({}, result), {
364
+ value
365
+ });
357
366
  }
358
367
  async txErr(tx2, senderAddress) {
359
368
  const result = await this.tx(tx2, senderAddress);
369
+ const value = _core.expectErr.call(void 0, result.value);
360
370
  if (result.isOk)
361
371
  throw new Error(`Expected Err, received ok: ${String(result.value)}`);
362
- return result;
372
+ return __spreadProps(__spreadValues({}, result), {
373
+ value
374
+ });
363
375
  }
364
376
  evalCode(code, contractAddress = UTIL_CONTRACT_ID) {
365
377
  return evalCode({
package/dist/index.mjs CHANGED
@@ -129,7 +129,9 @@ import {
129
129
  cvToString,
130
130
  cvToValue as cvToValue2,
131
131
  filterEvents,
132
- CoreNodeEventType
132
+ CoreNodeEventType,
133
+ ok,
134
+ err
133
135
  } from "@clarigen/core";
134
136
  import {
135
137
  evalRaw,
@@ -213,10 +215,11 @@ async function tx({
213
215
  });
214
216
  const resultCV = hexToCV2(result.output_serialized);
215
217
  const value = cvToValue2(resultCV);
218
+ const resp = result.success ? ok(value) : err(value);
216
219
  const baseReturn = {
217
- value,
218
220
  logs: getLogs(result.stderr),
219
- costs: result.costs
221
+ costs: result.costs,
222
+ value: resp
220
223
  };
221
224
  if (result.success) {
222
225
  return __spreadProps(__spreadValues({}, baseReturn), {
@@ -298,7 +301,10 @@ var TestProvider = class {
298
301
  for (const k in contracts) {
299
302
  if (Object.prototype.hasOwnProperty.call(contracts, k)) {
300
303
  const contract = contracts[k];
301
- const contractFilePath = contract.contractFile;
304
+ let contractFilePath = contract.contractFile;
305
+ if (options.clarinetPath) {
306
+ contractFilePath = resolve2(process.cwd(), options.clarinetPath, contractFilePath);
307
+ }
302
308
  if (typeof contractFilePath === "undefined") {
303
309
  throw new Error("Cannot setup @clarigen/test - missing contract file.");
304
310
  }
@@ -351,15 +357,21 @@ var TestProvider = class {
351
357
  }
352
358
  async txOk(tx2, senderAddress) {
353
359
  const result = await this.tx(tx2, senderAddress);
360
+ const value = expectOk(result.value);
354
361
  if (!result.isOk)
355
362
  throw new Error(`Expected OK, received error: ${String(result.value)}`);
356
- return result;
363
+ return __spreadProps(__spreadValues({}, result), {
364
+ value
365
+ });
357
366
  }
358
367
  async txErr(tx2, senderAddress) {
359
368
  const result = await this.tx(tx2, senderAddress);
369
+ const value = expectErr(result.value);
360
370
  if (result.isOk)
361
371
  throw new Error(`Expected Err, received ok: ${String(result.value)}`);
362
- return result;
372
+ return __spreadProps(__spreadValues({}, result), {
373
+ value
374
+ });
363
375
  }
364
376
  evalCode(code, contractAddress = UTIL_CONTRACT_ID) {
365
377
  return evalCode({
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.21",
2
+ "version": "1.0.0-next.25",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -16,12 +16,13 @@
16
16
  "name": "@clarigen/test",
17
17
  "author": "Hank Stoever",
18
18
  "devDependencies": {
19
- "jest-environment-node": "28.1.1"
19
+ "jest-environment-node": "28.1.1",
20
+ "@clarigen/cli": "1.0.0-next.25"
20
21
  },
21
22
  "dependencies": {
22
- "@clarigen/core": "1.0.0-next.21",
23
- "@clarigen/native-bin": "1.0.0-next.21",
24
- "micro-stacks": "^0.2.0"
23
+ "@clarigen/core": "1.0.0-next.25",
24
+ "@clarigen/native-bin": "1.0.0-next.25",
25
+ "micro-stacks": "^0.5.2"
25
26
  },
26
27
  "publishConfig": {
27
28
  "access": "public"
@@ -34,6 +35,6 @@
34
35
  "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check src/**/*.ts",
35
36
  "typecheck": "tsc --noEmit",
36
37
  "build-test-types": "cd test/clarinet-project && pnpm clarigen && cd ../..",
37
- "publish:dev": "yalc publish --push"
38
+ "publish:dev": "pnpm build && yalc publish --push"
38
39
  }
39
40
  }