feat(media): implement integrated media manager with sidebar and picker
- Implement DriveService and ShopifyMediaService for backend operations - Create MediaSidebar.html with premium UI and auto-polling - Integrate Google Picker API for robust file selection - Orchestrate sync logic via MediaService (Drive -> Staged Upload -> Shopify) - Add secure config handling for API keys and tokens - Update ppsscript.json with required OAuth scopes - Update MEMORY.md and README.md with architecture details
This commit is contained in:
30
src/services/DriveService.test.ts
Normal file
30
src/services/DriveService.test.ts
Normal file
@ -0,0 +1,30 @@
|
||||
import { MockDriveService } from "./MockDriveService"
|
||||
|
||||
describe("DriveService", () => {
|
||||
let service: MockDriveService
|
||||
|
||||
beforeEach(() => {
|
||||
service = new MockDriveService()
|
||||
})
|
||||
|
||||
test("getOrCreateFolder creates new folder if not exists", () => {
|
||||
const folder = service.getOrCreateFolder("TestSKU", "root_id")
|
||||
expect(folder.getName()).toBe("TestSKU")
|
||||
expect(folder.getId()).toContain("TestSKU")
|
||||
})
|
||||
|
||||
test("saveFile stores file in correct folder", () => {
|
||||
const folder = service.getOrCreateFolder("TestSKU", "root_id")
|
||||
const mockBlob = {
|
||||
getName: () => "test.jpg",
|
||||
getContentType: () => "image/jpeg"
|
||||
} as unknown as GoogleAppsScript.Base.Blob
|
||||
|
||||
const file = service.saveFile(mockBlob, folder.getId())
|
||||
expect(file.getName()).toBe("test.jpg")
|
||||
|
||||
const files = service.getFiles(folder.getId())
|
||||
expect(files.length).toBe(1)
|
||||
expect(files[0].getId()).toBe(file.getId())
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user