mirror of
https://github.com/unjs/unstorage.git
synced 2025-12-08 21:26:09 +00:00
test(cloudflare): use wrangler dev proxy (#518)
This commit is contained in:
parent
6caa7d6bb8
commit
13da5e58a2
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,3 +12,4 @@ __*
|
|||||||
.netlify
|
.netlify
|
||||||
test/fs-storage/**
|
test/fs-storage/**
|
||||||
.env
|
.env
|
||||||
|
.wrangler
|
||||||
|
|||||||
@ -95,7 +95,8 @@
|
|||||||
"unbuild": "^2.0.0",
|
"unbuild": "^2.0.0",
|
||||||
"vite": "^6.0.3",
|
"vite": "^6.0.3",
|
||||||
"vitest": "^2.1.8",
|
"vitest": "^2.1.8",
|
||||||
"vue": "^3.5.13"
|
"vue": "^3.5.13",
|
||||||
|
"wrangler": "^3.94.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@azure/app-configuration": "^1.8.0",
|
"@azure/app-configuration": "^1.8.0",
|
||||||
|
|||||||
603
pnpm-lock.yaml
generated
603
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,38 +1,25 @@
|
|||||||
/// <reference types="@cloudflare/workers-types" />
|
/// <reference types="@cloudflare/workers-types" />
|
||||||
import { describe, expect, test } from "vitest";
|
import { describe, expect, test, afterAll } from "vitest";
|
||||||
import { createStorage, snapshot } from "../../src";
|
import { createStorage, snapshot } from "../../src";
|
||||||
import CloudflareKVBinding from "../../src/drivers/cloudflare-kv-binding";
|
import CloudflareKVBinding from "../../src/drivers/cloudflare-kv-binding";
|
||||||
import { testDriver } from "./utils";
|
import { testDriver } from "./utils";
|
||||||
|
import { getPlatformProxy } from "wrangler";
|
||||||
|
|
||||||
const mockStorage = createStorage();
|
describe("drivers: cloudflare-kv", async () => {
|
||||||
|
const cfProxy = await getPlatformProxy();
|
||||||
// https://developers.cloudflare.com/workers/runtime-apis/kv/
|
globalThis.__env__ = cfProxy.env;
|
||||||
const mockBinding: KVNamespace = {
|
afterAll(async () => {
|
||||||
get(key) {
|
globalThis.__env__ = undefined;
|
||||||
return mockStorage.getItem(key) as any;
|
await cfProxy.dispose();
|
||||||
},
|
});
|
||||||
getWithMetadata(key: string) {
|
|
||||||
return mockStorage.getItem(key) as any;
|
|
||||||
},
|
|
||||||
put(key, value) {
|
|
||||||
return mockStorage.setItem(key, value) as any;
|
|
||||||
},
|
|
||||||
delete(key) {
|
|
||||||
return mockStorage.removeItem(key) as any;
|
|
||||||
},
|
|
||||||
list(opts) {
|
|
||||||
return mockStorage
|
|
||||||
.getKeys(opts?.prefix || undefined)
|
|
||||||
.then((keys) => ({ keys: keys.map((name) => ({ name })) })) as any;
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
describe("drivers: cloudflare-kv", () => {
|
|
||||||
testDriver({
|
testDriver({
|
||||||
driver: CloudflareKVBinding({ binding: mockBinding, base: "base" }),
|
driver: CloudflareKVBinding({ base: "base" }),
|
||||||
async additionalTests() {
|
async additionalTests() {
|
||||||
test("snapshot", async () => {
|
test("snapshot", async () => {
|
||||||
expect(await snapshot(mockStorage, "")).toMatchInlineSnapshot(`
|
const storage = createStorage({
|
||||||
|
driver: CloudflareKVBinding({}),
|
||||||
|
});
|
||||||
|
expect(await snapshot(storage, "")).toMatchInlineSnapshot(`
|
||||||
{
|
{
|
||||||
"base:data:raw.bin": "base64:AQID",
|
"base:data:raw.bin": "base64:AQID",
|
||||||
"base:data:serialized1.json": "SERIALIZED",
|
"base:data:serialized1.json": "SERIALIZED",
|
||||||
|
|||||||
@ -1,50 +1,26 @@
|
|||||||
/// <reference types="@cloudflare/workers-types" />
|
/// <reference types="@cloudflare/workers-types" />
|
||||||
import { describe, test, expect } from "vitest";
|
import { describe, test, expect, afterAll } from "vitest";
|
||||||
import { createStorage, snapshot } from "../../src";
|
import { createStorage, snapshot } from "../../src";
|
||||||
import CloudflareR2Binding from "../../src/drivers/cloudflare-r2-binding";
|
import CloudflareR2Binding from "../../src/drivers/cloudflare-r2-binding";
|
||||||
import { testDriver } from "./utils";
|
import { testDriver } from "./utils";
|
||||||
|
import { getPlatformProxy } from "wrangler";
|
||||||
|
|
||||||
const mockStorage = createStorage();
|
describe.skip("drivers: cloudflare-r2-binding", async () => {
|
||||||
|
const cfProxy = await getPlatformProxy();
|
||||||
|
globalThis.__env__ = cfProxy.env;
|
||||||
|
afterAll(async () => {
|
||||||
|
globalThis.__env__ = undefined;
|
||||||
|
await cfProxy.dispose();
|
||||||
|
});
|
||||||
|
|
||||||
// https://developers.cloudflare.com/workers/runtime-apis/kv/
|
|
||||||
const mockBinding: R2Bucket = {
|
|
||||||
async head(key) {
|
|
||||||
return (await mockStorage.hasItem(key)) ? ({ key } as any) : null;
|
|
||||||
},
|
|
||||||
async get(key) {
|
|
||||||
return {
|
|
||||||
text: () => mockStorage.getItem(key),
|
|
||||||
arrayBuffer: () => mockStorage.getItemRaw(key),
|
|
||||||
} as any;
|
|
||||||
},
|
|
||||||
put(key, value) {
|
|
||||||
return mockStorage.setItemRaw(key, value) as any;
|
|
||||||
},
|
|
||||||
delete(key) {
|
|
||||||
if (Array.isArray(key)) {
|
|
||||||
return Promise.all(key.map((k) => mockStorage.removeItem(k))) as any;
|
|
||||||
}
|
|
||||||
return mockStorage.removeItem(key as string) as any;
|
|
||||||
},
|
|
||||||
list(opts) {
|
|
||||||
return mockStorage
|
|
||||||
.getKeys(opts?.prefix || undefined)
|
|
||||||
.then((keys) => ({ objects: keys.map((key) => ({ key })) })) as any;
|
|
||||||
},
|
|
||||||
createMultipartUpload() {
|
|
||||||
throw new Error("Not implemented");
|
|
||||||
},
|
|
||||||
resumeMultipartUpload() {
|
|
||||||
throw new Error("Not implemented");
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
describe("drivers: cloudflare-r2-binding", () => {
|
|
||||||
testDriver({
|
testDriver({
|
||||||
driver: CloudflareR2Binding({ binding: mockBinding, base: "base" }),
|
driver: CloudflareR2Binding({ base: "base" }),
|
||||||
async additionalTests() {
|
async additionalTests() {
|
||||||
test("snapshot", async () => {
|
test("snapshot", async () => {
|
||||||
expect(await snapshot(mockStorage, "")).toMatchInlineSnapshot(`
|
const storage = createStorage({
|
||||||
|
driver: CloudflareR2Binding({}),
|
||||||
|
});
|
||||||
|
expect(await snapshot(storage, "")).toMatchInlineSnapshot(`
|
||||||
{
|
{
|
||||||
"base:data:raw.bin": Uint8Array [
|
"base:data:raw.bin": Uint8Array [
|
||||||
1,
|
1,
|
||||||
|
|||||||
9
wrangler.toml
Normal file
9
wrangler.toml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
compatibility_date = "2024-12-01"
|
||||||
|
|
||||||
|
kv_namespaces = [
|
||||||
|
{ binding = "STORAGE", id = "<KV_ID>" }
|
||||||
|
]
|
||||||
|
|
||||||
|
r2_buckets = [
|
||||||
|
{ binding = "BUCKET", bucket_name = "default" },
|
||||||
|
]
|
||||||
Loading…
x
Reference in New Issue
Block a user