- 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
31 lines
968 B
TypeScript
31 lines
968 B
TypeScript
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())
|
|
})
|
|
})
|