fix: Adds default currency to store currencies on create (#982)
This commit is contained in:
committed by
GitHub
parent
ec7c10e446
commit
a0a21d15ef
@@ -1,7 +1,36 @@
|
||||
import StoreService from "../store"
|
||||
import { IdMap, MockManager, MockRepository } from "medusa-test-utils"
|
||||
import StoreService from "../store"
|
||||
|
||||
describe("StoreService", () => {
|
||||
describe("create", () => {
|
||||
const storeRepository = MockRepository({})
|
||||
const currencyRepository = MockRepository({
|
||||
findOne: () => Promise.resolve({ code: "usd" }),
|
||||
})
|
||||
|
||||
const storeService = new StoreService({
|
||||
manager: MockManager,
|
||||
storeRepository,
|
||||
currencyRepository,
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks()
|
||||
})
|
||||
|
||||
it("successfully creates store with default currency", async () => {
|
||||
await storeService.create()
|
||||
|
||||
expect(storeRepository.create).toHaveBeenCalledTimes(1)
|
||||
expect(storeRepository.save).toHaveBeenCalledTimes(1)
|
||||
expect(currencyRepository.findOne).toHaveBeenCalledTimes(1)
|
||||
|
||||
expect(storeRepository.save).toHaveBeenCalledWith({
|
||||
currencies: [{ code: "usd" }],
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe("retrieve", () => {
|
||||
const storeRepository = MockRepository({})
|
||||
|
||||
@@ -75,7 +104,7 @@ describe("StoreService", () => {
|
||||
})
|
||||
|
||||
const currencyRepository = MockRepository({
|
||||
findOne: query => {
|
||||
findOne: (query) => {
|
||||
if (query.where.code === "sek") {
|
||||
return Promise.resolve({ code: "sek" })
|
||||
}
|
||||
@@ -138,7 +167,7 @@ describe("StoreService", () => {
|
||||
})
|
||||
|
||||
const currencyRepository = MockRepository({
|
||||
findOne: query => {
|
||||
findOne: (query) => {
|
||||
if (query.where.code === "sek") {
|
||||
return Promise.resolve({ code: "sek" })
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { MedusaError } from "medusa-core-utils"
|
||||
import { BaseService } from "medusa-interfaces"
|
||||
|
||||
import { currencies } from "../utils/currencies"
|
||||
|
||||
/**
|
||||
@@ -53,11 +52,23 @@ class StoreService extends BaseService {
|
||||
async create() {
|
||||
return this.atomicPhase_(async (manager) => {
|
||||
const storeRepository = manager.getCustomRepository(this.storeRepository_)
|
||||
const currencyRepository = manager.getCustomRepository(
|
||||
this.currencyRepository_
|
||||
)
|
||||
|
||||
let store = await this.retrieve()
|
||||
|
||||
if (!store) {
|
||||
const s = await storeRepository.create()
|
||||
// Add default currency (USD) to store currencies
|
||||
const usd = await currencyRepository.findOne({
|
||||
code: "usd",
|
||||
})
|
||||
|
||||
if (usd) {
|
||||
s.currencies = [usd]
|
||||
}
|
||||
|
||||
store = await storeRepository.save(s)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user