fix(tax): Make system provider registration backward compatible (#12441)

* fix(tax): Make provider registration backward compatible

* add tests
This commit is contained in:
Oli Juhl
2025-05-12 17:06:43 +02:00
committed by GitHub
parent 60b1fe0676
commit 92af52d133
9 changed files with 74 additions and 22 deletions

View File

@@ -0,0 +1,28 @@
import { ITaxModuleService } from "@medusajs/framework/types"
import { Modules } from "@medusajs/framework/utils"
import { moduleIntegrationTestRunner } from "@medusajs/test-utils"
jest.setTimeout(30000)
moduleIntegrationTestRunner<ITaxModuleService>({
moduleName: Modules.TAX,
testSuite: ({ service }) => {
describe("Tax Module Service", () => {
describe("providers", () => {
it("should have loaded local tax provider successfully", async () => {
const providers = await service.listTaxProviders()
expect(providers).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "tp_system",
is_enabled: true,
}),
])
)
})
})
})
},
})

View File

@@ -27,17 +27,17 @@ export const setupTaxStructure = async (service: ITaxModuleService) => {
const [us, dk, de, ca] = await service.createTaxRegions([
{
country_code: "US",
provider_id: "tp_system_system",
provider_id: "tp_system",
default_tax_rate: { name: "US Default Rate", rate: 2, code: "US" },
},
{
country_code: "DK",
provider_id: "tp_system_system",
provider_id: "tp_system",
default_tax_rate: { name: "Denmark Default Rate", rate: 25, code: "DK" },
},
{
country_code: "DE",
provider_id: "tp_system_system",
provider_id: "tp_system",
default_tax_rate: {
code: "DE19",
name: "Germany Default Rate",
@@ -46,7 +46,7 @@ export const setupTaxStructure = async (service: ITaxModuleService) => {
},
{
country_code: "CA",
provider_id: "tp_system_system",
provider_id: "tp_system",
default_tax_rate: { name: "Canada Default Rate", rate: 5, code: "CA" },
},
])

View File

@@ -1,16 +1,16 @@
import { moduleProviderLoader } from "@medusajs/framework/modules-sdk"
import {
CreateTaxProviderDTO,
LoaderOptions,
ModuleProvider,
ModulesSdkTypes,
CreateTaxProviderDTO,
} from "@medusajs/framework/types"
import { asFunction, asValue, Lifetime } from "awilix"
import { MedusaError } from "@medusajs/framework/utils"
import * as providers from "../providers"
import TaxProviderService from "../services/tax-provider"
import { MedusaError } from "@medusajs/framework/utils"
const PROVIDER_REGISTRATION_KEY = "tax_providers" as const
@@ -46,7 +46,7 @@ export default async ({
>): Promise<void> => {
// Local providers
for (const provider of Object.values(providers)) {
await registrationFn(provider, container, { id: "system" })
await registrationFn(provider, container, {})
}
await moduleProviderLoader({