Skip to content

Commit

Permalink
Add basic tests for json api condition type
Browse files Browse the repository at this point in the history
  • Loading branch information
theref committed Jul 19, 2024
1 parent 758488d commit 5ef9cd4
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
38 changes: 38 additions & 0 deletions packages/taco/test/conditions/base/json.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { describe, expect, it } from 'vitest';

import {
JsonApiCondition,
JsonApiConditionSchema,
} from '../../../src/conditions/base/json-api';
import { testJsonApiConditionObj } from '../../test-utils';

describe('JsonApiCondition', () => {
describe('validation', () => {
it('accepts a valid schema', () => {
const result = JsonApiCondition.validate(
JsonApiConditionSchema,
testJsonApiConditionObj,
);

expect(result.error).toBeUndefined();
expect(result.data).toEqual(testJsonApiConditionObj);
});

it('rejects an invalid schema', () => {
const badJsonApiObj = {
...testJsonApiConditionObj,
endpoint: 'not-a-url',
};

const result = JsonApiCondition.validate(JsonApiConditionSchema, badJsonApiObj);

expect(result.error).toBeDefined();
expect(result.data).toBeUndefined();
expect(result.error?.format()).toMatchObject({
endpoint: {
_errors: ['Invalid url'],
},
});
});
});
});
15 changes: 15 additions & 0 deletions packages/taco/test/test-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ import {
ContractConditionType,
FunctionAbiProps,
} from '../src/conditions/base/contract';
import {
JsonApiConditionProps,
JsonApiConditionType
} from '../src/conditions/base/json-api';
import {
RpcConditionProps,
RpcConditionType,
Expand Down Expand Up @@ -222,6 +226,17 @@ export const testTimeConditionObj: TimeConditionProps = {
chain: TEST_CHAIN_ID,
};

export const testJsonApiConditionObj = {
conditionType: JsonApiConditionType,
endpoint: 'https://api.coingecko.com/api/v3/simple/price',
parameters: {
'ids': 'ethereum',
'vs_currencies': 'usd',
},
query: '$.ethereum.usd',
returnValueTest: testReturnValueTest,
};

export const testRpcConditionObj: RpcConditionProps = {
conditionType: RpcConditionType,
chain: TEST_CHAIN_ID,
Expand Down

0 comments on commit 5ef9cd4

Please sign in to comment.