GithubHelp home page GithubHelp logo

cache types about workers-types HOT 4 CLOSED

cloudflare avatar cloudflare commented on July 16, 2024 6
cache types

from workers-types.

Comments (4)

mac2000 avatar mac2000 commented on July 16, 2024 3

Workaround for now is:

export interface Caches {
    default: {
        put(request: Request | string, response: Response): Promise<undefined>;
        match(request: Request | string): Promise<Response | undefined>;
    };
}

declare let caches: Caches;

from workers-types.

mac2000 avatar mac2000 commented on July 16, 2024 1

just implement interface, e.g.

export interface Caches {
    default: {
        put(request: Request | string, response: Response): Promise<undefined>;
        match(request: Request | string): Promise<Response | undefined>;
    };
}

declare let caches: Caches;

export interface GlobalCaches {
    caches: Caches;
}

export function makeFakeCache(): GlobalCaches {
    return {
        caches: {
            default: {
                put: (): Promise<undefined> => Promise.resolve(undefined),
                match: (): Promise<Response | undefined> => Promise.resolve(undefined),
            },
        },
    };
}


beforeEach(() => {
    Object.assign(global, makeServiceWorkerEnv(), makeFakeCache())
});

test('handler should use cache', async () => {
    caches.default.match = (): Promise<Response | undefined> =>
        Promise.resolve(new Response(JSON.stringify({ foo: "bar" })));

    const result = await doWork() // doWork inside uses global caches and trying to match on it will return { foo: "bar" }
    // ...
}); 

or use some mocking libraries, e.g. sinon, or maybe something built into jest, etc

from workers-types.

emillime avatar emillime commented on July 16, 2024

I'm also wondering this. How are we supposed to use const cache = caches.default right now it throws an error because default does not exist on CahceStorage. Is there a workaround?

from workers-types.

emillime avatar emillime commented on July 16, 2024

Thanks, now I just need to figure out how to set up the test environment.

from workers-types.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.