From bd57d9fe05ff1836c2aafd950d884b64eb1eb42f Mon Sep 17 00:00:00 2001 From: James Campbell Date: Fri, 19 Jul 2024 17:06:32 +0200 Subject: [PATCH] Update test json url and add serialization test --- .../test/conditions/condition-expr.test.ts | 20 +++++++++++++++++++ packages/taco/test/test-utils.ts | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/taco/test/conditions/condition-expr.test.ts b/packages/taco/test/conditions/condition-expr.test.ts index bf4fe8946..4defa46cf 100644 --- a/packages/taco/test/conditions/condition-expr.test.ts +++ b/packages/taco/test/conditions/condition-expr.test.ts @@ -9,6 +9,7 @@ import { ContractCondition, ContractConditionProps, } from '../../src/conditions/base/contract'; +import { JsonApiCondition } from '../../src/conditions/base/json-api'; import { RpcCondition, RpcConditionType } from '../../src/conditions/base/rpc'; import { TimeCondition, @@ -20,6 +21,7 @@ import { ERC721Balance } from '../../src/conditions/predefined/erc721'; import { testContractConditionObj, testFunctionAbi, + testJsonApiConditionObj, testReturnValueTest, testRpcConditionObj, testTimeConditionObj, @@ -56,6 +58,7 @@ describe('condition set', () => { const rpcCondition = new RpcCondition(testRpcConditionObj); const timeCondition = new TimeCondition(testTimeConditionObj); + const jsonApiCondition = new JsonApiCondition(testJsonApiConditionObj); const compoundCondition = new CompoundCondition({ operator: 'and', operands: [ @@ -401,6 +404,23 @@ describe('condition set', () => { expect(conditionExprFromJson.condition).toBeInstanceOf(RpcCondition); }); + it('json api condition serialization', () => { + const conditionExpr = new ConditionExpression(jsonApiCondition); + + const conditionExprJson = conditionExpr.toJson(); + expect(conditionExprJson).toBeDefined(); + expect(conditionExprJson).toContain('endpoint'); + expect(conditionExprJson).toContain('https://_this_would_totally_fail.com'); + expect(conditionExprJson).toContain('parameters'); + expect(conditionExprJson).toContain('query'); + expect(conditionExprJson).toContain('$.ethereum.usd'); + expect(conditionExprJson).toContain('returnValueTest'); + + const conditionExprFromJson = ConditionExpression.fromJSON(conditionExprJson); + expect(conditionExprFromJson).toBeDefined(); + expect(conditionExprFromJson.condition).toBeInstanceOf(JsonApiCondition); + }); + it('compound condition serialization', () => { const conditionExpr = new ConditionExpression(compoundCondition); const compoundConditionObj = compoundCondition.toObj(); diff --git a/packages/taco/test/test-utils.ts b/packages/taco/test/test-utils.ts index 33c562265..78db4f911 100644 --- a/packages/taco/test/test-utils.ts +++ b/packages/taco/test/test-utils.ts @@ -228,7 +228,7 @@ export const testTimeConditionObj: TimeConditionProps = { export const testJsonApiConditionObj = { conditionType: JsonApiConditionType, - endpoint: 'https://api.coingecko.com/api/v3/simple/price', + endpoint: 'https://_this_would_totally_fail.com', parameters: { 'ids': 'ethereum', 'vs_currencies': 'usd',