setupTests.ts 912 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. const caches = {};
  2. class Cache {
  3. cache: object;
  4. constructor(key: string) {
  5. caches[key] = caches[key] || {};
  6. this.cache = caches[key];
  7. }
  8. match(url: string): Promise<Response | undefined> {
  9. return new Promise((resolve, reject) => resolve(this.cache[url]));
  10. }
  11. delete(url: string): Promise<boolean> {
  12. delete this.cache[url];
  13. return new Promise((resolve, reject) => resolve(true));
  14. }
  15. put(url: string, response: Response): Promise<void> {
  16. this.cache[url] = response;
  17. return Promise.resolve();
  18. }
  19. };
  20. class CacheStorage {
  21. open(key: string): Promise<Cache> {
  22. return new Promise((resolve, reject) => {
  23. resolve(new Cache(key));
  24. });
  25. }
  26. delete(key: string): Promise<boolean> {
  27. const wasPresent = key in caches;
  28. if (wasPresent) {
  29. caches[key] = undefined;
  30. }
  31. return Promise.resolve(wasPresent);
  32. }
  33. };
  34. global.caches = new CacheStorage();