chore(): Reorganize modules (#7210)

**What**
Move all modules to the modules directory
This commit is contained in:
Adrien de Peretti
2024-05-02 17:33:34 +02:00
committed by GitHub
parent 7a351eef09
commit 4eae25e1ef
870 changed files with 91 additions and 62 deletions

View File

@@ -0,0 +1,32 @@
import { FileTypes } from "@medusajs/types"
import { AbstractFileProviderService } from "@medusajs/utils"
export class FileProviderServiceFixtures extends AbstractFileProviderService {
static identifier = "fixtures-file-provider"
protected storage = {}
async upload(
file: FileTypes.ProviderUploadFileDTO
): Promise<FileTypes.ProviderFileResultDTO> {
this.storage[file.filename] = file.content
return {
url: file.filename,
key: file.filename,
}
}
async delete(file: FileTypes.ProviderDeleteFileDTO): Promise<void> {
delete this.storage[file.fileKey]
return
}
async getPresignedDownloadUrl(
fileData: FileTypes.ProviderGetFileDTO
): Promise<string> {
if (this.storage[fileData.fileKey]) {
return this.storage[fileData.fileKey]
}
return ""
}
}
export const services = [FileProviderServiceFixtures]

View File

@@ -0,0 +1 @@
export * from "./default-provider"

View File

@@ -0,0 +1,56 @@
import { resolve } from "path"
import { Modules } from "@medusajs/utils"
import { SuiteOptions, moduleIntegrationTestRunner } from "medusa-test-utils"
import { Entity, PrimaryKey } from "@mikro-orm/core"
jest.setTimeout(100000)
// The test runner throws if a model is not passed, so we create a dummy entity
@Entity({ tableName: "dummy_file_entity" })
export default class DummyEntity {
@PrimaryKey()
id: string
}
const moduleOptions = {
providers: [
{
resolve: resolve(
process.cwd() +
"/integration-tests/__fixtures__/providers/default-provider"
),
options: {
config: {
"default-provider": {},
},
},
},
],
}
moduleIntegrationTestRunner({
moduleName: Modules.FILE,
moduleOptions: moduleOptions,
moduleModels: [DummyEntity],
// TODO: Fix the type of service, it complains for some reason if we pass IFileModuleService
testSuite: ({ service }: SuiteOptions<any>) => {
describe("File Module Service", () => {
it("creates and gets a file", async () => {
const res = await service.create({
filename: "test.jpg",
mimeType: "image/jpeg",
content: Buffer.from("test"),
})
expect(res).toEqual({
id: "test.jpg",
url: "test.jpg",
})
// The fake provider returns the file content as the url
const downloadUrl = await service.retrieve("test.jpg")
expect(await new Response(downloadUrl.url).text()).toEqual("test")
})
})
},
})