
* feat: ✨ add dummy order-created * refactor: 🔥 unused private-providers-configuration-service * feat: ✨ add dummy order-fulfilled * refactor: 🚚 move provider-config * refactor: 🚚 crudSettingsConfigurator -> crudSettingsManager * refactor: ♻️ [tax-provider].ts -> [tax-provider]-webhook.service.ts * feat: ✨ add dummy createOrder * refactor: ♻️ distinguish between salesOrder and salesInvoice in avatax * refactor: 🚚 [provider]-calculate.ts to [provider]-transform.ts * refactor: 🚚 ResponseTaxPayload to tax-provider-webhook.ts * refactor: 🚚 ResponseTaxPayload -> CalculateTaxesResponse * refactor: ♻️ webhooks with active-tax-provider.service.ts * feat: ✨ add skeleton orderCreate functionality * refactor: ♻️ [provider]-transform.ts -> [provider]-[webhook]-transform.ts * feat: ✨ add order-fulfilled with avatax call * refactor: ♻️ move getActiveTaxProvider to active-tax-provider * refactor: 🏷️ export types for [provider]-client function args * refactor: 🚚 UpdateAppMetadata -> UpdateMetadata * feat: ✨ fulfill order with id from metadata * build: ⬆️ upgrade avatax * feat: ✨ commit transaction on fulfill in avatax * fix: 🐛 return of webhooks to ensure valid retry behavior * refactor: 🚚 [provider]-[webhook]-transform -> [provider]-[webhook]-map * refactor: 🏷️ export types of avatax-calculate-taxes mapPayload * refactor: ♻️ extract address-map to separate function * refactor: ♻️ remove schema.ts * refactor: ♻️ move addressSchema to channels-config.ts * feat: ✨ add tests & placeholder tests for avatax & taxjar maps * refactor: ♻️ throw error if no metadata * refactor: ♻️ change EXTERNAL_ID_KEY to PROVIDER_ORDER_ID_KEY add comments * refactor: ♻️ comments -> it.todo in tests * refactor: 💡 add comment about shipping_item_code * refactor: ✅ add todo items for tests * refactor: ♻️ remove export and add sumLines to taxJarOrderCreated * refactor: ♻️ address-map with avatarAddressFactory * docs: 💡 add comment about MOCKED_SALEOR_PAYLOAD * refactor: ♻️ remove export of mapLines and add to avataxCalculateTaxes * style: 🎨 add newline-after-var warn to eslint-config-saleor * style: 🎨 autofix newline-after-var in taxes * test: ✅ restructure tests according to new naming in address-map * refactor: ♻️ add shippingItemCode to avataxCalculateTaxes wrapper object * refactor: 🚚 payloadProps -> payloadArgs * refactor: ♻️ add Maps suffix to map wrapper objects * refactor: ♻️ remove data: null from ActiveTaxProviderResult * refactor: ♻️ maintain the object hierarchy in tests * refactor: ♻️ refactor webhook responses with WebhookResponseFactory * build: ⬆️ vitest * test: ✅ add tests for get-app-config-test * test: ✅ add tests for getActiveTaxProvider * refactor: ♻️ use address fragment for taxBase and order * refactor: ♻️ rename WebhookResponseFactory -> WebhookResponse * style: 👷 add multiline-comment-style * fix: 🐛 dummy test in get-app-config.test.ts * refactor: ♻️ rename AddressFragment -> Address * refactor: ♻️ use debug instead of error in webhook-response noRetry * refactor: ♻️ refactor as variables in mutation * build: 👷 add changeset * refactor: ♻️ split changesets in two * build: ⬆️ vite * build: ⬆️ vite && vitest in all apps
126 lines
3 KiB
TypeScript
126 lines
3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
AvataxCalculateTaxesMapPayloadArgs,
|
|
avataxCalculateTaxesMaps,
|
|
} from "./avatax-calculate-taxes-map";
|
|
|
|
// * Mocked payload data, channel config and avatax config
|
|
const MOCKED_CALCULATE_TAXES_ARGS: AvataxCalculateTaxesMapPayloadArgs = {
|
|
taxBase: {
|
|
currency: "PLN",
|
|
channel: {
|
|
slug: "channel-pln",
|
|
},
|
|
sourceObject: {
|
|
__typename: "Order",
|
|
user: {
|
|
id: "VXNlcjo5ZjY3ZjY0Zi1iZjY5LTQ5ZjYtYjQ4Zi1iZjY3ZjY0ZjY0ZjY=",
|
|
},
|
|
},
|
|
discounts: [],
|
|
address: {
|
|
streetAddress1: "123 Palm Grove Ln",
|
|
streetAddress2: "",
|
|
city: "LOS ANGELES",
|
|
country: {
|
|
code: "US",
|
|
},
|
|
countryArea: "CA",
|
|
postalCode: "90002",
|
|
},
|
|
shippingPrice: {
|
|
amount: 48.33,
|
|
},
|
|
lines: [
|
|
{
|
|
chargeTaxes: true,
|
|
quantity: 1,
|
|
unitPrice: {
|
|
amount: 84,
|
|
},
|
|
totalPrice: {
|
|
amount: 84,
|
|
},
|
|
sourceLine: {
|
|
__typename: "OrderLine",
|
|
id: "T3JkZXJMaW5lOmY1NGQ1MWY2LTc1OTctNGY2OC1hNDk0LTFjYjZlYjRmOTlhMQ==",
|
|
variant: {
|
|
id: "UHJvZHVjdFZhcmlhbnQ6MzQ2",
|
|
product: {
|
|
metafield: null,
|
|
productType: {
|
|
metafield: null,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
chargeTaxes: true,
|
|
quantity: 1,
|
|
unitPrice: {
|
|
amount: 5.99,
|
|
},
|
|
totalPrice: {
|
|
amount: 5.99,
|
|
},
|
|
sourceLine: {
|
|
__typename: "OrderLine",
|
|
id: "T3JkZXJMaW5lOjU1NTFjNTFjLTM5MWQtNGI0Ny04MGU0LWVjY2Q5ZjU4MjQyNQ==",
|
|
variant: {
|
|
id: "UHJvZHVjdFZhcmlhbnQ6Mzg1",
|
|
product: {
|
|
metafield: null,
|
|
productType: {
|
|
metafield: null,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
channel: {
|
|
providerInstanceId: "b8c29f49-7cae-4762-8458-e9a27eb83081",
|
|
enabled: false,
|
|
address: {
|
|
country: "US",
|
|
zip: "92093",
|
|
state: "CA",
|
|
city: "La Jolla",
|
|
street: "9500 Gilman Drive",
|
|
},
|
|
},
|
|
config: {
|
|
companyCode: "DEFAULT",
|
|
isAutocommit: false,
|
|
isSandbox: true,
|
|
name: "Avatax-1",
|
|
password: "password",
|
|
username: "username",
|
|
},
|
|
};
|
|
|
|
describe("avataxCalculateTaxesMaps", () => {
|
|
describe.todo("mapResponse", () => {
|
|
it.todo("calculation of fields");
|
|
it.todo("formatting the fields");
|
|
it.todo("rounding of numbers");
|
|
});
|
|
describe.todo("mapPayload", () => {
|
|
it.todo("calculation of fields");
|
|
it.todo("formatting the fields");
|
|
it.todo("rounding of numbers");
|
|
});
|
|
describe("mapLines", () => {
|
|
it("includes shipping as a line", () => {
|
|
const lines = avataxCalculateTaxesMaps.mapLines(MOCKED_CALCULATE_TAXES_ARGS.taxBase);
|
|
|
|
expect(lines).toContainEqual({
|
|
itemCode: avataxCalculateTaxesMaps.shippingItemCode,
|
|
quantity: 1,
|
|
amount: 48.33,
|
|
});
|
|
});
|
|
});
|
|
});
|