diff --git a/src/__tests__/common.ts b/src/__tests__/common.ts index 203158ad..0cd99e3c 100644 --- a/src/__tests__/common.ts +++ b/src/__tests__/common.ts @@ -1,15 +1,17 @@ +require("dotenv").config(); import { Akord, Auth } from "../index"; import faker from '@faker-js/faker'; export async function initInstance(email: string, password: string): Promise { + Auth.configure({ env: process.env.ENV as any }); const { wallet } = await Auth.signIn(email, password); - return new Akord(wallet, { debug: true }); + return new Akord(wallet, { debug: true, env: process.env.ENV as any }); } export const vaultCreate = async (akord: Akord) => { const name = faker.random.words(); const termsOfAccess = faker.lorem.sentences(); - const { vaultId, membershipId } = await akord.vault.create(name, { termsOfAccess }); + const { vaultId, membershipId } = await akord.vault.create(name, { termsOfAccess, cacheOnly: true }); const membership = await akord.membership.get(membershipId); expect(membership.status).toEqual("ACCEPTED"); diff --git a/src/__tests__/folder.test.ts b/src/__tests__/folder.test.ts index 885d1a61..4c89bd2b 100644 --- a/src/__tests__/folder.test.ts +++ b/src/__tests__/folder.test.ts @@ -2,6 +2,7 @@ import { Akord } from "../index"; import faker from '@faker-js/faker'; import { initInstance, folderCreate, vaultCreate } from './common'; import { email, password } from './data/test-credentials'; +import { BadRequest } from "../errors/bad-request"; let akord: Akord; @@ -43,7 +44,7 @@ describe("Testing folder functions", () => { const name = faker.random.words(); await expect(async () => await akord.folder.create(vaultId, name, { parentId: rootFolderId }) - ).rejects.toThrow(Error); + ).rejects.toThrow(BadRequest); }); it("should restore root folder", async () => { diff --git a/src/__tests__/membership.test.ts b/src/__tests__/membership.test.ts index 60e4e602..2f1ec7a8 100644 --- a/src/__tests__/membership.test.ts +++ b/src/__tests__/membership.test.ts @@ -2,6 +2,7 @@ import { Akord } from "../index"; import { email, email2, password, password2 } from './data/test-credentials'; import { initInstance, vaultCreate } from './common'; import { Membership } from "../types/membership"; +import { BadRequest } from "../errors/bad-request"; let ownerAkordInstance: Akord; let inviteeAkordInstance: Akord; @@ -84,7 +85,7 @@ describe("Testing membership functions", () => { ownerAkordInstance = await initInstance(email, password); await expect(async () => ownerAkordInstance.membership.invite(vaultId, email2, "VIEWER") - ).rejects.toThrow(Error); + ).rejects.toThrow(BadRequest); }); it("should change access", async () => { diff --git a/src/__tests__/queries.test.ts b/src/__tests__/queries.test.ts index a2582798..cdc3c2b9 100644 --- a/src/__tests__/queries.test.ts +++ b/src/__tests__/queries.test.ts @@ -10,9 +10,10 @@ jest.setTimeout(3000000); describe("Testing querying directly from permaweb", () => { beforeAll(async () => { + Auth.configure({ env: process.env.ENV as any }); const { wallet } = await Auth.signIn(email, password); - privateClient = new Akord(wallet); - publicClient = new Akord(); + privateClient = new Akord(wallet, { debug: true, env: process.env.ENV as any }); + publicClient = new Akord(undefined, { debug: true, env: process.env.ENV as any }); }); it("Query all vaults from Akord API", async () => { diff --git a/src/__tests__/vault.test.ts b/src/__tests__/vault.test.ts index aae35f9b..e1538bb7 100644 --- a/src/__tests__/vault.test.ts +++ b/src/__tests__/vault.test.ts @@ -2,6 +2,7 @@ import { Akord } from "../index"; import faker from '@faker-js/faker'; import { initInstance, vaultCreate } from './common'; import { email, password } from './data/test-credentials'; +import { BadRequest } from "../errors/bad-request"; let akord: Akord; @@ -78,7 +79,7 @@ describe("Testing vault functions", () => { const name = faker.random.words(); await expect(async () => await akord.vault.rename(vaultId, name) - ).rejects.toThrow(Error); + ).rejects.toThrow(BadRequest); }); it("should restore the vault", async () => { diff --git a/src/core/node.ts b/src/core/node.ts index f0ca8294..7961b249 100644 --- a/src/core/node.ts +++ b/src/core/node.ts @@ -192,7 +192,7 @@ class NodeService extends Service { } protected async setVaultContextFromNodeId(nodeId: string, type: NodeType, vaultId?: string) { - const object = await this.api.getNode(nodeId, type, this.vaultId); + const object = await this.api.getNode(nodeId, type, vaultId); this.setVaultId(object.vaultId); this.setIsPublic(object.__public__); await this.setMembershipKeys(object); diff --git a/src/core/stack.ts b/src/core/stack.ts index 29ea973a..1239835a 100644 --- a/src/core/stack.ts +++ b/src/core/stack.ts @@ -23,10 +23,13 @@ class StackService extends NodeService { ...options } await this.setVaultContext(vaultId); + this.setVaultContextForFile(); this.setActionRef(actionRefs.STACK_CREATE); this.setFunction(functions.NODE_CREATE); this.setTags(createOptions.tags); + createOptions.cacheOnly = this.vault.cacheOnly; + const state = { name: await this.processWriteString(name ? name : file.name), versions: [await this.uploadNewFileVersion(file, createOptions)], @@ -44,6 +47,7 @@ class StackService extends NodeService { */ public async import(vaultId: string, fileTxId: string, options: NodeCreateOptions = this.defaultCreateOptions): Promise { await this.setVaultContext(vaultId); + this.setVaultContextForFile(); this.setActionRef(actionRefs.STACK_CREATE); this.setFunction(functions.NODE_CREATE); @@ -72,8 +76,11 @@ class StackService extends NodeService { */ public async uploadRevision(stackId: string, file: FileLike, options: FileUploadOptions = {}): Promise { await this.setVaultContextFromNodeId(stackId, this.objectType); + this.setVaultContextForFile(); this.setActionRef(actionRefs.STACK_UPLOAD_REVISION); + options.cacheOnly = this.object.__cacheOnly__; + const state = { versions: [await this.uploadNewFileVersion(file, options)] }; @@ -91,6 +98,7 @@ class StackService extends NodeService { const stack = new Stack(await this.api.getNode(stackId, objectType.STACK, this.vaultId), null); const version = stack.getVersion(index); await this.setVaultContext(stack.vaultId); + this.setVaultContextForFile(); const { fileData, metadata } = await this.api.downloadFile(version.getUri(StorageType.S3), { public: this.isPublic }); const data = await this.processReadRaw(fileData, metadata); const name = await this.processReadString(version.name); @@ -110,9 +118,6 @@ class StackService extends NodeService { } private async uploadNewFileVersion(file: FileLike, options: FileUploadOptions): Promise { - if (this.object.__cacheOnly__) { - options.cacheOnly = true - } const { resourceTx, resourceUrl, @@ -133,8 +138,7 @@ class StackService extends NodeService { return version; } - protected async setVaultContext(vaultId: string): Promise { - await super.setVaultContext(vaultId); + protected setVaultContextForFile(): void { this.fileService.setKeys(this.keys); this.fileService.setRawDataEncryptionPublicKey(this.dataEncrypter.publicKey); this.fileService.setVaultId(this.vaultId);