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

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,5 +1,5 @@
1
- import { CoreNodeEvent, ResultAssets, Contracts, ContractFactory, AllContracts, ContractCall, Response, ContractCalls, ContractInstances, ResponseOk, ResponseErr } from '@clarigen/core';
2
- import { Costs, NativeClarityBinProvider, ClarinetAccounts } from '@clarigen/native-bin';
1
+ import { CoreNodeEvent, ResultAssets, Project, AllContracts, DeploymentsForContracts, ProjectFactory, Contracts, ContractFactory, ContractCall, Response, ContractCalls, ContractInstances, ResponseOk, ResponseErr } from '@clarigen/core';
2
+ import { Costs, ClarinetAccount, 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';
5
5
  import { StacksNetworkVersion } from 'micro-stacks/crypto';
@@ -31,6 +31,21 @@ interface PublicResultOk<T> extends PublicResultBase<T> {
31
31
  }
32
32
  declare type PublicResult<R> = PublicResultOk<R> | PublicResultErr<R>;
33
33
 
34
+ declare type Account = Omit<ClarinetAccount, 'balance'> & {
35
+ balance: number;
36
+ };
37
+ interface Simnet {
38
+ accounts: {
39
+ deployer: Account;
40
+ [key: string]: Account;
41
+ };
42
+ deployment: {
43
+ identifier: string;
44
+ file: string;
45
+ }[];
46
+ }
47
+ declare function testFactory<P extends Project<C, D>, C extends AllContracts, D extends DeploymentsForContracts<C>>(project: P): ProjectFactory<P, 'simnet'>;
48
+
34
49
  declare type Provider = NativeClarityBinProvider | {
35
50
  clarityBin: NativeClarityBinProvider;
36
51
  };
@@ -60,6 +75,7 @@ declare class TestProvider {
60
75
  coverageFolder?: string;
61
76
  constructor(clarityBin: NativeClarityBinProvider);
62
77
  static fromContracts<T extends Contracts<any>>(contracts: T, options?: FromContractsOptions): Promise<FromContracts<T>>;
78
+ static fromProject(simnet: Simnet, options?: FromContractsOptions): Promise<TestProvider>;
63
79
  static fromFactory(contracts: ContractFactory<AllContracts>, options?: FromContractsOptions): Promise<TestProvider>;
64
80
  ro<T>(tx: ContractCall<T>): Promise<ReadOnlyResult<T>>;
65
81
  rov<T>(tx: ContractCall<T>): Promise<T>;
@@ -75,4 +91,4 @@ declare class TestProvider {
75
91
  mapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T): Promise<Val | null>;
76
92
  }
77
93
 
78
- export { PublicResultErr, PublicResultOk, ReadOnlyResult, TestProvider, finishCoverage, getBlockHeight, getStxBalance, makeRandomAddress, mineBlocks, setupCoverage };
94
+ export { PublicResultErr, PublicResultOk, ReadOnlyResult, Simnet, TestProvider, finishCoverage, getBlockHeight, getStxBalance, makeRandomAddress, mineBlocks, setupCoverage, testFactory };
package/dist/index.js CHANGED
@@ -251,6 +251,16 @@ async function mapGet({
251
251
  // src/index.ts
252
252
 
253
253
 
254
+ // src/utils/test-factory.ts
255
+
256
+
257
+
258
+ function testFactory(project) {
259
+ return _core.projectFactory.call(void 0, project, "simnet");
260
+ }
261
+
262
+ // src/index.ts
263
+
254
264
  var TestProvider = class {
255
265
  constructor(clarityBin) {
256
266
  this.clarityBin = clarityBin;
@@ -289,6 +299,34 @@ var TestProvider = class {
289
299
  provider
290
300
  };
291
301
  }
302
+ static async fromProject(simnet, options = {}) {
303
+ const allocations = Object.fromEntries(Object.entries(simnet.accounts).map(([name, account]) => {
304
+ return [name, __spreadProps(__spreadValues({}, account), { balance: BigInt(account.balance) })];
305
+ }));
306
+ const clarityBin = options.clarityBin || await _nativebin.createClarityBin.call(void 0, {
307
+ allocations
308
+ });
309
+ let coverageFolder = options.coverageFolder;
310
+ if (process.env.CLARIGEN_COVERAGE) {
311
+ coverageFolder = _path.resolve.call(void 0, process.cwd(), "coverage");
312
+ }
313
+ await deployUtilContract(clarityBin);
314
+ for (const contract of simnet.deployment) {
315
+ let contractFilePath = contract.file;
316
+ if (options.clarinetPath) {
317
+ contractFilePath = _path.resolve.call(void 0, process.cwd(), options.clarinetPath, contractFilePath);
318
+ }
319
+ await _nativebin.deployContract.call(void 0, {
320
+ contractIdentifier: contract.identifier,
321
+ contractFilePath,
322
+ provider: clarityBin,
323
+ coverageFolder
324
+ });
325
+ }
326
+ const provider = new this(clarityBin);
327
+ provider.coverageFolder = coverageFolder;
328
+ return provider;
329
+ }
292
330
  static async fromFactory(contracts, options = {}) {
293
331
  const clarityBin = options.clarityBin || await _nativebin.createClarityBin.call(void 0, {
294
332
  allocations: options.accounts
@@ -401,4 +439,5 @@ var TestProvider = class {
401
439
 
402
440
 
403
441
 
404
- exports.Allocation = _nativebin.Allocation; exports.TestProvider = TestProvider; exports.createClarityBin = _nativebin.createClarityBin; exports.evalJson = _nativebin.evalJson; exports.executeJson = _nativebin.executeJson; exports.finishCoverage = finishCoverage; exports.getBlockHeight = getBlockHeight; exports.getStxBalance = getStxBalance; exports.makeRandomAddress = makeRandomAddress; exports.mineBlocks = mineBlocks; exports.setupCoverage = setupCoverage;
442
+
443
+ exports.Allocation = _nativebin.Allocation; exports.TestProvider = TestProvider; exports.createClarityBin = _nativebin.createClarityBin; exports.evalJson = _nativebin.evalJson; exports.executeJson = _nativebin.executeJson; exports.finishCoverage = finishCoverage; exports.getBlockHeight = getBlockHeight; exports.getStxBalance = getStxBalance; exports.makeRandomAddress = makeRandomAddress; exports.mineBlocks = mineBlocks; exports.setupCoverage = setupCoverage; exports.testFactory = testFactory;
package/dist/index.mjs CHANGED
@@ -250,6 +250,16 @@ async function mapGet({
250
250
 
251
251
  // src/index.ts
252
252
  import { resolve as resolve2 } from "path";
253
+
254
+ // src/utils/test-factory.ts
255
+ import {
256
+ projectFactory
257
+ } from "@clarigen/core";
258
+ function testFactory(project) {
259
+ return projectFactory(project, "simnet");
260
+ }
261
+
262
+ // src/index.ts
253
263
  import { Allocation, createClarityBin as createClarityBin2, executeJson as executeJson3, evalJson as evalJson3 } from "@clarigen/native-bin";
254
264
  var TestProvider = class {
255
265
  constructor(clarityBin) {
@@ -289,6 +299,34 @@ var TestProvider = class {
289
299
  provider
290
300
  };
291
301
  }
302
+ static async fromProject(simnet, options = {}) {
303
+ const allocations = Object.fromEntries(Object.entries(simnet.accounts).map(([name, account]) => {
304
+ return [name, __spreadProps(__spreadValues({}, account), { balance: BigInt(account.balance) })];
305
+ }));
306
+ const clarityBin = options.clarityBin || await createClarityBin({
307
+ allocations
308
+ });
309
+ let coverageFolder = options.coverageFolder;
310
+ if (process.env.CLARIGEN_COVERAGE) {
311
+ coverageFolder = resolve2(process.cwd(), "coverage");
312
+ }
313
+ await deployUtilContract(clarityBin);
314
+ for (const contract of simnet.deployment) {
315
+ let contractFilePath = contract.file;
316
+ if (options.clarinetPath) {
317
+ contractFilePath = resolve2(process.cwd(), options.clarinetPath, contractFilePath);
318
+ }
319
+ await deployContract2({
320
+ contractIdentifier: contract.identifier,
321
+ contractFilePath,
322
+ provider: clarityBin,
323
+ coverageFolder
324
+ });
325
+ }
326
+ const provider = new this(clarityBin);
327
+ provider.coverageFolder = coverageFolder;
328
+ return provider;
329
+ }
292
330
  static async fromFactory(contracts, options = {}) {
293
331
  const clarityBin = options.clarityBin || await createClarityBin({
294
332
  allocations: options.accounts
@@ -400,5 +438,6 @@ export {
400
438
  getStxBalance,
401
439
  makeRandomAddress,
402
440
  mineBlocks,
403
- setupCoverage
441
+ setupCoverage,
442
+ testFactory
404
443
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.25",
2
+ "version": "1.0.0-next.26",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -16,12 +16,11 @@
16
16
  "name": "@clarigen/test",
17
17
  "author": "Hank Stoever",
18
18
  "devDependencies": {
19
- "jest-environment-node": "28.1.1",
20
- "@clarigen/cli": "1.0.0-next.25"
19
+ "jest-environment-node": "28.1.1"
21
20
  },
22
21
  "dependencies": {
23
- "@clarigen/core": "1.0.0-next.25",
24
- "@clarigen/native-bin": "1.0.0-next.25",
22
+ "@clarigen/core": "1.0.0-next.29",
23
+ "@clarigen/native-bin": "1.0.0-next.26",
25
24
  "micro-stacks": "^0.5.2"
26
25
  },
27
26
  "publishConfig": {
@@ -34,7 +33,7 @@
34
33
  "test": "pnpm build-test-types && jest",
35
34
  "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check src/**/*.ts",
36
35
  "typecheck": "tsc --noEmit",
37
- "build-test-types": "cd test/clarinet-project && pnpm clarigen && cd ../..",
36
+ "build-test-types": "sh build-types.sh",
38
37
  "publish:dev": "pnpm build && yalc publish --push"
39
38
  }
40
39
  }