From 1608194cb84dddfa1a1590330a5262518989447e Mon Sep 17 00:00:00 2001 From: b3hr4d Date: Fri, 8 Dec 2023 19:49:28 +0300 Subject: [PATCH] Update dependencies and configuration files --- jest.config.js | 7 ++ packages/store/babel.config.js | 6 +- packages/store/package.json | 2 +- packages/store/src/reactor.ts | 10 +-- packages/store/test/select.test.ts | 10 ++- packages/store/test/simple.test.ts | 4 +- packages/svelte/babel.config.js | 5 +- packages/svelte/jest.config.js | 18 +--- packages/svelte/package.json | 8 +- packages/svelte/test/actor.test.ts | 70 --------------- .../test/candid/backend/candid.did.d.ts | 89 ------------------- .../svelte/test/candid/backend/candid.did.js | 86 ------------------ .../svelte/test/candid/backend/index.d.ts | 50 ----------- packages/svelte/test/candid/backend/index.js | 39 -------- .../svelte/test/candid/hello/hello.did.d.ts | 6 -- .../svelte/test/candid/hello/hello.did.js | 6 -- packages/svelte/test/candid/hello/index.d.ts | 50 ----------- packages/svelte/test/candid/hello/index.js | 39 -------- packages/svelte/test/select.test.ts | 40 --------- packages/svelte/test/simple.test.ts | 59 ------------ packages/svelte/tsconfig.json | 1 + yarn.lock | 4 +- 22 files changed, 33 insertions(+), 576 deletions(-) delete mode 100644 packages/svelte/test/actor.test.ts delete mode 100644 packages/svelte/test/candid/backend/candid.did.d.ts delete mode 100644 packages/svelte/test/candid/backend/candid.did.js delete mode 100644 packages/svelte/test/candid/backend/index.d.ts delete mode 100644 packages/svelte/test/candid/backend/index.js delete mode 100644 packages/svelte/test/candid/hello/hello.did.d.ts delete mode 100644 packages/svelte/test/candid/hello/hello.did.js delete mode 100644 packages/svelte/test/candid/hello/index.d.ts delete mode 100644 packages/svelte/test/candid/hello/index.js delete mode 100644 packages/svelte/test/select.test.ts delete mode 100644 packages/svelte/test/simple.test.ts diff --git a/jest.config.js b/jest.config.js index 211fd20147..402bc3402b 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,13 @@ module.exports = { transform: { "^.+\\.[t|j]sx?$": "babel-jest", + "^.+\\.ts$": "ts-jest", + "^.+\\.svelte$": [ + "svelte-jester", + { + preprocess: true, + }, + ], }, preset: "ts-jest", testEnvironment: "node", diff --git a/packages/store/babel.config.js b/packages/store/babel.config.js index 2beddffe2a..2435bcc1f0 100644 --- a/packages/store/babel.config.js +++ b/packages/store/babel.config.js @@ -1,7 +1,3 @@ module.exports = { - presets: [ - "@babel/preset-env", - ["@babel/preset-react", { runtime: "automatic" }], - "@babel/preset-typescript", - ], + presets: ["@babel/preset-env", "@babel/preset-typescript"], } diff --git a/packages/store/package.json b/packages/store/package.json index 57208d2655..eb593bdf58 100644 --- a/packages/store/package.json +++ b/packages/store/package.json @@ -9,7 +9,7 @@ ], "repository": { "type": "git", - "url": "git@github.com:b3hr4d/react-actor.git" + "url": "git@github.com:B3Pay/ic-reactor.git" }, "keywords": [ "actor", diff --git a/packages/store/src/reactor.ts b/packages/store/src/reactor.ts index a341e082c0..c8e83a59e4 100644 --- a/packages/store/src/reactor.ts +++ b/packages/store/src/reactor.ts @@ -44,7 +44,7 @@ export class ReActorManager> { this.store = create(() => this.DEFAULT_STATE) this.actorInitializer = actorInitializer this.agentOptions = agentOptions - this.actions = this.createActions(agentOptions) + this.actions = this.createActions() } public initializeActor = ( @@ -75,9 +75,7 @@ export class ReActorManager> { } } - private createActions( - agentOptions?: HttpAgentOptions - ): ReActorStoreActions { + private createActions(): ReActorStoreActions { // Helper function to handle common state updates const updateState = (newState: Partial>) => { this.store.setState((state) => ({ ...state, ...newState })) @@ -90,7 +88,7 @@ export class ReActorManager> { const initialize = (identity?: Identity) => { updateState({ initializing: true }) try { - this.initializeActor(agentOptions, identity) + this.initializeActor(undefined, identity) if (!this.actor) throw new Error("Initialization failed: Actor could not be created.") @@ -115,7 +113,7 @@ export class ReActorManager> { this.agent = new HttpAgent({ identity, - ...(agentOptions || this.agentOptions), + ...this.agentOptions, }) updateState({ diff --git a/packages/store/test/select.test.ts b/packages/store/test/select.test.ts index 12609c1a5e..621e6c300c 100644 --- a/packages/store/test/select.test.ts +++ b/packages/store/test/select.test.ts @@ -1,10 +1,12 @@ -import createICStoreAndActions from "../src" +import { createReActorStore } from "../src" const mockActor = () => {} -describe("createICStoreAndActions", () => { +describe("createReActorStore", () => { test("uninitialized", () => { - const { store } = createICStoreAndActions(mockActor) + const { store } = createReActorStore(mockActor, { + host: "https://icp-api.io", + }) expect(store.getState()).toEqual({ actorState: {}, @@ -20,7 +22,7 @@ describe("createICStoreAndActions", () => { }) test("initialized", () => { - const { initializeActor, store } = createICStoreAndActions(mockActor) + const { initializeActor, store } = createReActorStore(mockActor) initializeActor() diff --git a/packages/store/test/simple.test.ts b/packages/store/test/simple.test.ts index beb1988d42..2c08184f45 100644 --- a/packages/store/test/simple.test.ts +++ b/packages/store/test/simple.test.ts @@ -1,9 +1,9 @@ import { randomBytes } from "crypto" -import createICStoreAndActions from "../src" +import { createReActorStore } from "../src" import { createActor } from "./candid/backend" describe("My IC Store and Actions", () => { - const { actions } = createICStoreAndActions( + const { actions } = createReActorStore( (agent) => createActor("xeka7-ryaaa-aaaal-qb57a-cai", { agent }), { host: "https://icp-api.io", diff --git a/packages/svelte/babel.config.js b/packages/svelte/babel.config.js index 42ac49c7b2..2435bcc1f0 100644 --- a/packages/svelte/babel.config.js +++ b/packages/svelte/babel.config.js @@ -1,6 +1,3 @@ module.exports = { - presets: [ - ["@babel/preset-env", { targets: { node: "current" } }], - "@babel/preset-typescript", - ], + presets: ["@babel/preset-env", "@babel/preset-typescript"], } diff --git a/packages/svelte/jest.config.js b/packages/svelte/jest.config.js index ae708dbe67..211fd20147 100644 --- a/packages/svelte/jest.config.js +++ b/packages/svelte/jest.config.js @@ -1,18 +1,8 @@ module.exports = { transform: { - "^.+\\.svelte$": "svelte-jester", - "^.+\\.ts$": "ts-jest", - "^.+\\.js$": "babel-jest", - }, - moduleFileExtensions: ["js", "ts", "svelte"], - testPathIgnorePatterns: ["node_modules"], - bail: false, - verbose: true, - transformIgnorePatterns: ["node_modules"], - setupFilesAfterEnv: ["@testing-library/jest-dom/extend-expect"], - globals: { - "ts-jest": { - tsconfig: "tsconfig.json", - }, + "^.+\\.[t|j]sx?$": "babel-jest", }, + preset: "ts-jest", + testEnvironment: "node", + setupFilesAfterEnv: ["./jest.setup.js"], } diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 7e85d6c102..e27bda33ed 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -9,7 +9,7 @@ ], "repository": { "type": "git", - "url": "git@github.com:b3hr4d/react-actor.git" + "url": "git@github.com:B3Pay/ic-reactor.git" }, "keywords": [ "actor", @@ -25,12 +25,12 @@ "url": "https://github.com/b3hr4d/ic-reactor/issues" }, "homepage": "https://github.com/b3hr4d/ic-reactor/tree/main/packages/store#readme", - "devDependencies": { - "@testing-library/jest-dom": "^6.1" - }, "peerDependencies": { "svelte": "^4.2" }, + "devDependencies": { + "svelte-jester": "^3.0" + }, "dependencies": { "@dfinity/agent": "^0.20", "@dfinity/auth-client": "0.20", diff --git a/packages/svelte/test/actor.test.ts b/packages/svelte/test/actor.test.ts deleted file mode 100644 index d0b07aefc2..0000000000 --- a/packages/svelte/test/actor.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Cbor } from "@dfinity/agent" -import { IDL } from "@dfinity/candid" -import fetchMock from "jest-fetch-mock" -import { get } from "svelte/store" -import { ReActorManager } from "../src/reactor" -import { createActor } from "./candid/hello" - -fetchMock.enableMocks() - -const canisterDecodedReturnValue = "Hello, World!" -const expectedReplyArg = IDL.encode([IDL.Text], [canisterDecodedReturnValue]) - -fetchMock.mockResponse(async (req) => { - if (req.url.endsWith("/call")) { - return Promise.resolve({ - status: 200, - }) - } - - const responseObj = { - status: "replied", - reply: { - arg: expectedReplyArg, - }, - } - - return Promise.resolve({ - status: 200, - body: Cbor.encode(responseObj), - }) -}) - -describe("CreateActor", () => { - const callback = jest.fn() - - const { actions, store } = new ReActorManager( - (agent) => { - return createActor("bd3sg-teaaa-aaaaa-qaaba-cai", { - agent, - }) - }, - { - verifyQuerySignatures: false, - host: "https://local-mock", - } - ) - - const { initialize } = actions - const { subscribe } = store - - subscribe(callback) - - it("should initialize the actor", () => { - expect(get(store).initialized).toEqual(false) - initialize() - - expect(get(store).initialized).toEqual(true) - expect(callback).toHaveBeenCalledTimes(4) - }) - - it("should queryCall the query method", async () => { - const data = await actions.callMethod("greet", "World") - - expect(data).toEqual(canisterDecodedReturnValue) - }) - - it("should subscribe to the actor state", () => { - expect(callback).toHaveBeenCalledTimes(4) - }) -}) diff --git a/packages/svelte/test/candid/backend/candid.did.d.ts b/packages/svelte/test/candid/backend/candid.did.d.ts deleted file mode 100644 index d530604484..0000000000 --- a/packages/svelte/test/candid/backend/candid.did.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import type { Principal } from '@dfinity/principal'; -import type { ActorMethod } from '@dfinity/agent'; - -export interface AnonymousUserData { - 'texts' : BigUint64Array | bigint[], - 'created_at' : bigint, - 'decryption_key' : [] | [Uint8Array | number[]], -} -export interface AuthenticatedSignature { - 'signature' : Uint8Array | number[], - 'created_at' : bigint, -} -export interface IdentifiedUserData { - 'texts' : BigUint64Array | bigint[], - 'signature' : [] | [AuthenticatedSignature], - 'public_key' : Uint8Array | number[], -} -export interface LogEntry { - 'counter' : bigint, - 'file' : string, - 'line' : number, - 'version' : string, - 'message' : string, - 'timestamp' : bigint, -} -export interface OneTimeKey { - 'public_key' : Uint8Array | number[], - 'expiration' : bigint, -} -export type Result = { 'Ok' : [Uint8Array | number[], Uint8Array | number[]] } | - { 'Err' : string }; -export type Task = { 'CleanUpKeys' : null } | - { 'SendText' : { 'body' : string, 'phone_number' : string } } | - { 'CleanUpAnonymousUsers' : null } | - { 'SendEmail' : { 'subject' : string, 'body' : string, 'email' : string } } | - { 'Initialize' : null }; -export interface TaskTimerEntry { 'task' : Task, 'time' : bigint } -export interface UserText { 'id' : string, 'text' : Uint8Array | number[] } -export interface _SERVICE { - 'anonymous_user' : ActorMethod<[Uint8Array | number[]], AnonymousUserData>, - 'anonymous_user_notes' : ActorMethod< - [Uint8Array | number[]], - Array - >, - 'canister_cycle_balance' : ActorMethod<[], bigint>, - 'edit_encrypted_text' : ActorMethod< - [bigint, Uint8Array | number[], [] | [Uint8Array | number[]]], - undefined - >, - 'encrypted_ibe_decryption_key_for_caller' : ActorMethod< - [Uint8Array | number[]], - Uint8Array | number[] - >, - 'encrypted_symmetric_key_for_caller' : ActorMethod< - [Uint8Array | number[]], - Uint8Array | number[] - >, - 'get_one_time_key' : ActorMethod<[bigint], Uint8Array | number[]>, - 'get_one_time_key_details' : ActorMethod<[bigint], OneTimeKey>, - 'ibe_encryption_key' : ActorMethod<[], Uint8Array | number[]>, - 'partition_details' : ActorMethod<[], Array<[string, number]>>, - 'print_log_entries' : ActorMethod<[], Array>, - 'print_log_entries_page' : ActorMethod< - [bigint, [] | [bigint]], - Array - >, - 'read_with_one_time_key' : ActorMethod< - [bigint, Uint8Array | number[], Uint8Array | number[]], - Result - >, - 'request_two_factor_authentication_for_caller' : ActorMethod< - [Uint8Array | number[]], - string - >, - 'save_encrypted_text' : ActorMethod< - [Uint8Array | number[], [] | [Uint8Array | number[]]], - bigint - >, - 'set_one_time_key' : ActorMethod<[bigint, Uint8Array | number[]], undefined>, - 'symmetric_key_verification_key' : ActorMethod<[], Uint8Array | number[]>, - 'timers' : ActorMethod<[], Array>, - 'two_factor_verification_key' : ActorMethod<[], Uint8Array | number[]>, - 'user_data' : ActorMethod<[], IdentifiedUserData>, - 'user_notes' : ActorMethod< - [[] | [Uint8Array | number[]]], - [bigint, Array] - >, - 'version' : ActorMethod<[], string>, -} diff --git a/packages/svelte/test/candid/backend/candid.did.js b/packages/svelte/test/candid/backend/candid.did.js deleted file mode 100644 index 8b2c7ca737..0000000000 --- a/packages/svelte/test/candid/backend/candid.did.js +++ /dev/null @@ -1,86 +0,0 @@ -const { - Record, - Vec, - Nat64, - Opt, - Nat8, - Text, - Variant, - Tuple, - Null, - Service, - Func, - Nat, - Nat32, -} = require("@dfinity/candid/lib/cjs/idl") - -const AnonymousUserData = Record({ - texts: Vec(Nat64), - created_at: Nat64, - decryption_key: Opt(Vec(Nat8)), -}) -const UserText = Record({ id: Text, text: Vec(Nat8) }) -const OneTimeKey = Record({ - public_key: Vec(Nat8), - expiration: Nat64, -}) -const LogEntry = Record({ - counter: Nat64, - file: Text, - line: Nat32, - version: Text, - message: Text, - timestamp: Nat64, -}) -const Result = Variant({ - Ok: Tuple(Vec(Nat8), Vec(Nat8)), - Err: Text, -}) -const Task = Variant({ - CleanUpKeys: Null, - SendText: Record({ body: Text, phone_number: Text }), - CleanUpAnonymousUsers: Null, - SendEmail: Record({ - subject: Text, - body: Text, - email: Text, - }), - Initialize: Null, -}) -const TaskTimerEntry = Record({ task: Task, time: Nat64 }) -const AuthenticatedSignature = Record({ - signature: Vec(Nat8), - created_at: Nat64, -}) -const IdentifiedUserData = Record({ - texts: Vec(Nat64), - signature: Opt(AuthenticatedSignature), - public_key: Vec(Nat8), -}) - -exports.idlFactory = ({ IDL }) => { - return Service({ - anonymous_user: Func([Vec(Nat8)], [AnonymousUserData], ["query"]), - anonymous_user_notes: Func([Vec(Nat8)], [Vec(UserText)], ["query"]), - canister_cycle_balance: Func([], [Nat], ["query"]), - edit_encrypted_text: Func([Nat64, Vec(Nat8), Opt(Vec(Nat8))], [], []), - encrypted_ibe_decryption_key_for_caller: Func([Vec(Nat8)], [Vec(Nat8)], []), - encrypted_symmetric_key_for_caller: Func([Vec(Nat8)], [Vec(Nat8)], []), - get_one_time_key: Func([Nat64], [Vec(Nat8)], ["query"]), - get_one_time_key_details: Func([Nat64], [OneTimeKey], ["query"]), - ibe_encryption_key: Func([], [Vec(Nat8)], ["query"]), - partition_details: Func([], [Vec(Tuple(Text, Nat8))], ["query"]), - print_log_entries: Func([], [Vec(LogEntry)], ["query"]), - print_log_entries_page: Func([Nat64, Opt(Nat64)], [Vec(Text)], ["query"]), - read_with_one_time_key: Func([Nat64, Vec(Nat8), Vec(Nat8)], [Result], []), - request_two_factor_authentication_for_caller: Func([Vec(Nat8)], [Text], []), - save_encrypted_text: Func([Vec(Nat8), Opt(Vec(Nat8))], [Nat64], []), - set_one_time_key: Func([Nat64, Vec(Nat8)], [], []), - symmetric_key_verification_key: Func([], [Vec(Nat8)], ["query"]), - timers: Func([], [Vec(TaskTimerEntry)], ["query"]), - two_factor_verification_key: Func([], [Vec(Nat8)], []), - user_data: Func([], [IdentifiedUserData], ["query"]), - user_notes: Func([Opt(Vec(Nat8))], [Nat64, Vec(UserText)], ["query"]), - version: Func([], [Text], ["query"]), - }) -} diff --git a/packages/svelte/test/candid/backend/index.d.ts b/packages/svelte/test/candid/backend/index.d.ts deleted file mode 100644 index 2aa39eca29..0000000000 --- a/packages/svelte/test/candid/backend/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { - ActorConfig, - ActorSubclass, - Agent, - HttpAgentOptions, -} from "@dfinity/agent" -import type { IDL } from "@dfinity/candid" -import type { Principal } from "@dfinity/principal" - -import { _SERVICE } from "./candid.did" - -export declare const idlFactory: IDL.InterfaceFactory -export declare const canisterId: string - -export declare interface CreateActorOptions { - /** - * @see {@link Agent} - */ - agent?: Agent - /** - * @see {@link HttpAgentOptions} - */ - agentOptions?: HttpAgentOptions - /** - * @see {@link ActorConfig} - */ - actorOptions?: ActorConfig -} - -/** - * Intializes an {@link ActorSubclass}, configured with the provided SERVICE interface of a canister. - * @constructs {@link ActorSubClass} - * @param {string | Principal} canisterId - ID of the canister the {@link Actor} will talk to - * @param {CreateActorOptions} options - see {@link CreateActorOptions} - * @param {CreateActorOptions["agent"]} options.agent - a pre-configured agent you'd like to use. Supercedes agentOptions - * @param {CreateActorOptions["agentOptions"]} options.agentOptions - options to set up a new agent - * @see {@link HttpAgentOptions} - * @param {CreateActorOptions["actorOptions"]} options.actorOptions - options for the Actor - * @see {@link ActorConfig} - */ -export declare const createActor: ( - canisterId: string | Principal, - options?: CreateActorOptions -) => ActorSubclass<_SERVICE> - -/** - * Intialized Actor using default settings, ready to talk to a canister using its candid interface - * @constructs {@link ActorSubClass} - */ -export declare const backend: ActorSubclass<_SERVICE> diff --git a/packages/svelte/test/candid/backend/index.js b/packages/svelte/test/candid/backend/index.js deleted file mode 100644 index d395bae193..0000000000 --- a/packages/svelte/test/candid/backend/index.js +++ /dev/null @@ -1,39 +0,0 @@ -const { Actor, HttpAgent } = require("@dfinity/agent") - -// Imports and re-exports candid interface -const { idlFactory } = require("./candid.did.js") - -/* CANISTER_ID is replaced by webpack based on node environment - * Note: canister environment variable will be standardized as - * process.env.CANISTER_ID_ - * beginning in dfx 0.15.0 - */ -exports.canisterId = - process.env.CANISTER_ID_BACKEND || process.env.BACKEND_CANISTER_ID - -exports.createActor = (canisterId, options = {}) => { - const agent = options.agent || new HttpAgent({ ...options.agentOptions }) - - if (options.agent && options.agentOptions) { - console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." - ) - } - - // Fetch root key for certificate validation during development - if (process.env.DFX_NETWORK !== "ic") { - agent.fetchRootKey().catch((err) => { - console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" - ) - console.error(err) - }) - } - - // Creates an actor with using the candid interface and the HttpAgent - return Actor.createActor(idlFactory, { - agent, - canisterId, - ...options.actorOptions, - }) -} diff --git a/packages/svelte/test/candid/hello/hello.did.d.ts b/packages/svelte/test/candid/hello/hello.did.d.ts deleted file mode 100644 index 315a628ee4..0000000000 --- a/packages/svelte/test/candid/hello/hello.did.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { ActorMethod } from "@dfinity/agent" - -export interface _SERVICE { - greet: ActorMethod<[string], string> - greet_update: ActorMethod<[string], string> -} diff --git a/packages/svelte/test/candid/hello/hello.did.js b/packages/svelte/test/candid/hello/hello.did.js deleted file mode 100644 index 98fe8b800e..0000000000 --- a/packages/svelte/test/candid/hello/hello.did.js +++ /dev/null @@ -1,6 +0,0 @@ -exports.idlFactory = ({ IDL }) => { - return IDL.Service({ - greet: IDL.Func([IDL.Text], [IDL.Text], ["query"]), - greet_update: IDL.Func([IDL.Text], [IDL.Text], []), - }) -} diff --git a/packages/svelte/test/candid/hello/index.d.ts b/packages/svelte/test/candid/hello/index.d.ts deleted file mode 100644 index db2c51f40f..0000000000 --- a/packages/svelte/test/candid/hello/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { - ActorSubclass, - HttpAgentOptions, - ActorConfig, - Agent, -} from "@dfinity/agent"; -import type { Principal } from "@dfinity/principal"; -import type { IDL } from "@dfinity/candid"; - -import { _SERVICE } from './hello.did'; - -export declare const idlFactory: IDL.InterfaceFactory; -export declare const canisterId: string; - -export declare interface CreateActorOptions { - /** - * @see {@link Agent} - */ - agent?: Agent; - /** - * @see {@link HttpAgentOptions} - */ - agentOptions?: HttpAgentOptions; - /** - * @see {@link ActorConfig} - */ - actorOptions?: ActorConfig; -} - -/** - * Intializes an {@link ActorSubclass}, configured with the provided SERVICE interface of a canister. - * @constructs {@link ActorSubClass} - * @param {string | Principal} canisterId - ID of the canister the {@link Actor} will talk to - * @param {CreateActorOptions} options - see {@link CreateActorOptions} - * @param {CreateActorOptions["agent"]} options.agent - a pre-configured agent you'd like to use. Supercedes agentOptions - * @param {CreateActorOptions["agentOptions"]} options.agentOptions - options to set up a new agent - * @see {@link HttpAgentOptions} - * @param {CreateActorOptions["actorOptions"]} options.actorOptions - options for the Actor - * @see {@link ActorConfig} - */ -export declare const createActor: ( - canisterId: string | Principal, - options?: CreateActorOptions -) => ActorSubclass<_SERVICE>; - -/** - * Intialized Actor using default settings, ready to talk to a canister using its candid interface - * @constructs {@link ActorSubClass} - */ -export declare const hello: ActorSubclass<_SERVICE>; diff --git a/packages/svelte/test/candid/hello/index.js b/packages/svelte/test/candid/hello/index.js deleted file mode 100644 index 9fa6780c1a..0000000000 --- a/packages/svelte/test/candid/hello/index.js +++ /dev/null @@ -1,39 +0,0 @@ -const { Actor, HttpAgent } = require("@dfinity/agent") - -// Imports and re-exports candid interface -const { idlFactory } = require("./hello.did.js") - -/* CANISTER_ID is replaced by webpack based on node environment - * Note: canister environment variable will be standardized as - * process.env.CANISTER_ID_ - * beginning in dfx 0.15.0 - */ -exports.canisterId = - process.env.CANISTER_ID_HELLO || process.env.HELLO_CANISTER_ID - -exports.createActor = (canisterId, options = {}) => { - const agent = options.agent || new HttpAgent({ ...options.agentOptions }) - - if (options.agent && options.agentOptions) { - console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." - ) - } - - // Fetch root key for certificate validation during development - if (process.env.DFX_NETWORK !== "ic") { - agent.fetchRootKey().catch((err) => { - console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" - ) - console.error(err) - }) - } - - // Creates an actor with using the candid interface and the HttpAgent - return Actor.createActor(idlFactory, { - agent, - canisterId, - ...options.actorOptions, - }) -} diff --git a/packages/svelte/test/select.test.ts b/packages/svelte/test/select.test.ts deleted file mode 100644 index 4b874cae47..0000000000 --- a/packages/svelte/test/select.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { get } from "svelte/store" -import { createReActorStore } from "../src" - -const mockActor = () => {} - -describe("createReActorStore", () => { - test("uninitialized", () => { - const { store } = createReActorStore(mockActor) - - expect(get(store)).toEqual({ - actorState: {}, - authClient: null, - authenticated: false, - authenticating: false, - initialized: false, - initializing: false, - identity: null, - loading: false, - error: undefined, - }) - }) - - test("initialized", () => { - const { initializeActor, store } = createReActorStore(mockActor) - - initializeActor() - - expect(get(store)).toEqual({ - actorState: {}, - authClient: null, - authenticated: false, - authenticating: false, - initialized: false, - initializing: false, - identity: null, - loading: false, - error: Error("Initialization failed: Actor could not be created."), - }) - }) -}) diff --git a/packages/svelte/test/simple.test.ts b/packages/svelte/test/simple.test.ts deleted file mode 100644 index 2315d1adaa..0000000000 --- a/packages/svelte/test/simple.test.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { randomBytes } from "crypto" -import { createReActorStore } from "../src" -import { idlFactory } from "./candid/backend" - -describe("My IC Store and Actions", () => { - const { actions } = createReActorStore({ - canisterId: "xeka7-ryaaa-aaaal-qb57a-cai", - idlFactory: idlFactory, - options: { - agentOptions: { - host: "https://icp-api.io", - }, - }, - }) - - afterAll(() => { - actions.resetState() - }) - - it("should return the symmetric key verification key", async () => { - actions.initialize() - - const initialData = await actions.callMethod( - "symmetric_key_verification_key" - ) - - expect(initialData).toBeDefined() - }) - - it("should return anonymous user data", async () => { - actions.initialize() - - const mockData = Uint8Array.from(Array(48).fill(0)) - const publicKey = Uint8Array.from(randomBytes(48)) - - const index = await actions.callMethod("save_encrypted_text", mockData, [ - publicKey, - ]) - - expect(index).toBeDefined() - - const savedData = await actions.callMethod("user_notes", [publicKey]) - - expect(savedData[1][0].text).toEqual(mockData) - }) - - it("should return logged user data", async () => { - actions.initialize() - await actions.authenticate() - }) - - it("should return timers", async () => { - actions.initialize() - - const data = await actions.callMethod("timers") - - expect(data).toBeDefined() - }) -}) diff --git a/packages/svelte/tsconfig.json b/packages/svelte/tsconfig.json index 67531bbb05..7655426915 100644 --- a/packages/svelte/tsconfig.json +++ b/packages/svelte/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../tsconfig.json", "include": ["./src"], + "esModuleInterop": true, "compilerOptions": { "outDir": "./dist" } diff --git a/yarn.lock b/yarn.lock index 2022ca7fdb..c4b83b499e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2183,7 +2183,7 @@ __metadata: "@dfinity/agent": "npm:^0.20" "@dfinity/auth-client": "npm:0.20" "@dfinity/candid": "npm:^0.20" - "@testing-library/jest-dom": "npm:^6.1" + svelte-jester: "npm:^3.0" peerDependencies: svelte: ^4.2 languageName: unknown @@ -16695,7 +16695,7 @@ __metadata: languageName: node linkType: hard -"svelte-jester@npm:3.0": +"svelte-jester@npm:3.0, svelte-jester@npm:^3.0": version: 3.0.0 resolution: "svelte-jester@npm:3.0.0" peerDependencies: