chore: Move upload tests to HTTP layer (#7610)

This commit is contained in:
Stevche Radevski authored and GitHub committed 2024-06-05 12:24:33 +00:00
1 parent 2b62686ec6
commit 37b794b89d
3 files changed
+25 -16

No files matched your search

@@ -1,11 +1,12 @@
import { medusaIntegrationTestRunner } from "medusa-test-utils" import { medusaIntegrationTestRunner } from "medusa-test-utils"
import FormData from "form-data" import FormData from "form-data"
import fs from "fs/promises" import fs from "fs/promises"
import os from "os"
import path from "path" import path from "path"
import { import {
adminHeaders, adminHeaders,
createAdminUser, createAdminUser,
} from "../../../helpers/create-admin-user" } from "../../../../helpers/create-admin-user"
jest.setTimeout(30000) jest.setTimeout(30000)
@@ -27,24 +28,16 @@ const getUploadReq = (files: { name: string; content: string }[]) => {
} }
medusaIntegrationTestRunner({ medusaIntegrationTestRunner({
env: {
MEDUSA_FF_MEDUSA_V2: true,
},
testSuite: ({ dbConnection, getContainer, api }) => { testSuite: ({ dbConnection, getContainer, api }) => {
let appContainer
beforeAll(() => {})
afterAll(async () => { afterAll(async () => {
await fs.rm(path.join(process.cwd(), "uploads"), { recursive: true }) await fs.rm(path.join(os.tmpdir(), "uploads"), { recursive: true })
}) })
beforeEach(async () => { beforeEach(async () => {
appContainer = getContainer() await createAdminUser(dbConnection, adminHeaders, getContainer())
await createAdminUser(dbConnection, adminHeaders, appContainer)
}) })
describe("POST /admin/uploads", () => { describe("POST /admin/uploads", () => {
beforeEach(async () => {})
it("uploads a single file successfully", async () => { it("uploads a single file successfully", async () => {
const { form, meta } = getUploadReq([ const { form, meta } = getUploadReq([
{ name: "first.jpeg", content: "first content" }, { name: "first.jpeg", content: "first content" },
+19
View File
@@ -1,4 +1,7 @@
const { defineConfig, Modules } = require("@medusajs/utils") const { defineConfig, Modules } = require("@medusajs/utils")
const os = require("os")
const path = require("path")
const DB_HOST = process.env.DB_HOST const DB_HOST = process.env.DB_HOST
const DB_USERNAME = process.env.DB_USERNAME const DB_USERNAME = process.env.DB_USERNAME
const DB_PASSWORD = process.env.DB_PASSWORD const DB_PASSWORD = process.env.DB_PASSWORD
@@ -32,5 +35,21 @@ module.exports = defineConfig({
providers: [customFulfillmentProvider], providers: [customFulfillmentProvider],
}, },
}, },
[Modules.FILE]: {
resolve: "@medusajs/file",
options: {
providers: [
{
resolve: "@medusajs/file-local-next",
options: {
config: {
// This is the directory where we can reliably write in CI environments
local: { upload_dir: path.join(os.tmpdir(), "uploads") },
},
},
},
],
},
},
}, },
}) })
@@ -10,7 +10,7 @@ export class LocalFileService extends AbstractFileProviderService {
constructor(_, options: LocalFileServiceOptions) { constructor(_, options: LocalFileServiceOptions) {
super() super()
this.uploadDir_ = options?.upload_dir || "uploads" this.uploadDir_ = options?.upload_dir || path.join(__dirname, "uploads")
this.backendUrl_ = options?.backend_url || "http://localhost:9000" this.backendUrl_ = options?.backend_url || "http://localhost:9000"
} }
@@ -29,10 +29,7 @@ export class LocalFileService extends AbstractFileProviderService {
} }
const parsedFilename = path.parse(file.filename) const parsedFilename = path.parse(file.filename)
await this.ensureDirExists(parsedFilename.dir)
if (parsedFilename.dir) {
this.ensureDirExists(parsedFilename.dir)
}
const fileKey = path.join( const fileKey = path.join(
parsedFilename.dir, parsedFilename.dir,