From 98ad5780bf582162c6220c05e7f0a6a53f946070 Mon Sep 17 00:00:00 2001
From: Krishna Sagar R <ragas.sagar.474@gmail.com>
Date: Tue, 20 Sep 2022 12:41:30 +0100
Subject: [PATCH] Create memoryStorage.test.ts

---
 src/storage/__tests__/memoryStorage.test.ts | 67 +++++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 src/storage/__tests__/memoryStorage.test.ts

diff --git a/src/storage/__tests__/memoryStorage.test.ts b/src/storage/__tests__/memoryStorage.test.ts
new file mode 100644
index 00000000..02f4c343
--- /dev/null
+++ b/src/storage/__tests__/memoryStorage.test.ts
@@ -0,0 +1,67 @@
+import { Cache } from '../../types'
+import getMemoryStorage from '../memoryStorage'
+
+import mockdate from 'mockdate'
+
+describe('memoryStorage cache', () => {
+  let cache: Cache
+  const cacheLife = 3600000 // an hour
+
+  beforeEach(() => {
+    cache = getLocalStorage({ cacheLife })
+  })
+
+  afterAll((): void => {
+    mockdate.reset()
+  })
+
+  beforeAll((): void => {
+    mockdate.set('2020-01-01T00:00:00.000Z')
+  })
+
+  it('stores and recreates response', async () => {
+    const body = 'response body'
+    const status = 200
+    const statusText = 'OK'
+    const headers = new Headers({ 'content-type': 'application/json' })
+    const response = new Response(
+      body,
+      {
+        status,
+        statusText,
+        headers
+      }
+    )
+    const responseID = 'aID'
+
+    await cache.set(responseID, response)
+    const received = await cache.get(responseID) as Response
+
+    expect(await received.text()).toEqual(body)
+    expect(received.ok).toBeTruthy()
+    expect(received.status).toEqual(status)
+    expect(received.statusText).toEqual(statusText)
+    expect(received.headers.get('content-type')).toEqual('application/json')
+  })
+
+  it('clears cache on expiration', async () => {
+    const body = 'response body'
+    const status = 200
+    const statusText = 'OK'
+    const headers = new Headers({ 'content-type': 'application/json' })
+    const response = new Response(
+      body,
+      {
+        status,
+        statusText,
+        headers
+      }
+    )
+    const responseID = 'aID'
+
+    await cache.set(responseID, response)
+    mockdate.set('2020-01-01T02:00:00.000Z')
+    await cache.get(responseID)
+
+    expect('{}').toEqual('{}')//TODO
+  })