| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
- import { pick } from '@vendure/common/lib/pick';
- import { createTestEnvironment } from '@vendure/testing';
- import gql from 'graphql-tag';
- import path from 'path';
- import { afterAll, beforeAll, describe, expect, it } from 'vitest';
- import { initialData } from '../../../e2e-common/e2e-initial-data';
- import { testConfig, TEST_SETUP_TIMEOUT_MS } from '../../../e2e-common/test-config';
- import { TAX_RATE_FRAGMENT } from './graphql/fragments';
- import * as Codegen from './graphql/generated-e2e-admin-types';
- import { DeletionResult } from './graphql/generated-e2e-admin-types';
- import { GET_TAX_RATES_LIST, UPDATE_TAX_RATE } from './graphql/shared-definitions';
- describe('TaxRate resolver', () => {
- const { server, adminClient, shopClient } = createTestEnvironment(testConfig());
- beforeAll(async () => {
- await server.init({
- initialData,
- productsCsvPath: path.join(__dirname, 'fixtures/e2e-products-minimal.csv'),
- customerCount: 2,
- });
- await adminClient.asSuperAdmin();
- }, TEST_SETUP_TIMEOUT_MS);
- afterAll(async () => {
- await server.destroy();
- });
- it('taxRates list', async () => {
- const { taxRates } = await adminClient.query<Codegen.GetTaxRatesQuery>(GET_TAX_RATES_LIST);
- expect(taxRates.totalItems).toBe(15);
- });
- it('taxRate', async () => {
- const { taxRate } = await adminClient.query<
- Codegen.GetTaxRateQuery,
- Codegen.GetTaxRateQueryVariables
- >(GET_TAX_RATE, {
- id: 'T_1',
- });
- expect(pick(taxRate!, ['id', 'name', 'enabled', 'value'])).toEqual({
- id: 'T_1',
- name: 'Standard Tax Oceania',
- enabled: true,
- value: 20,
- });
- expect(taxRate!.category.name).toBe('Standard Tax');
- expect(taxRate!.zone.name).toBe('Oceania');
- });
- it('createTaxRate', async () => {
- const { createTaxRate } = await adminClient.query<
- Codegen.CreateTaxRateMutation,
- Codegen.CreateTaxRateMutationVariables
- >(CREATE_TAX_RATE, {
- input: {
- name: 'My Tax Rate',
- categoryId: 'T_1',
- zoneId: 'T_1',
- enabled: true,
- value: 17.5,
- },
- });
- expect(createTaxRate.name).toBe('My Tax Rate');
- expect(createTaxRate.value).toBe(17.5);
- });
- it('updateTaxRate', async () => {
- const { updateTaxRate } = await adminClient.query<
- Codegen.UpdateTaxRateMutation,
- Codegen.UpdateTaxRateMutationVariables
- >(UPDATE_TAX_RATE, {
- input: {
- id: 'T_1',
- value: 17.5,
- },
- });
- expect(updateTaxRate.value).toBe(17.5);
- });
- it('deleteTaxRate', async () => {
- const { deleteTaxRate } = await adminClient.query<
- Codegen.DeleteTaxRateMutation,
- Codegen.DeleteTaxRateMutationVariables
- >(DELETE_TAX_RATE, {
- id: 'T_3',
- });
- expect(deleteTaxRate.result).toBe(DeletionResult.DELETED);
- expect(deleteTaxRate.message).toBeNull();
- const { taxRates } = await adminClient.query<Codegen.GetTaxRatesQuery>(GET_TAX_RATES_LIST);
- expect(taxRates.items.find(x => x.id === 'T_3')).toBeUndefined();
- });
- });
- export const GET_TAX_RATE = gql`
- query GetTaxRate($id: ID!) {
- taxRate(id: $id) {
- ...TaxRate
- }
- }
- ${TAX_RATE_FRAGMENT}
- `;
- export const CREATE_TAX_RATE = gql`
- mutation CreateTaxRate($input: CreateTaxRateInput!) {
- createTaxRate(input: $input) {
- ...TaxRate
- }
- }
- ${TAX_RATE_FRAGMENT}
- `;
- export const DELETE_TAX_RATE = gql`
- mutation DeleteTaxRate($id: ID!) {
- deleteTaxRate(id: $id) {
- result
- message
- }
- }
- `;
|