Skip to content

Commit 2588700

Browse files
committed
Initial commit
1 parent 3155329 commit 2588700

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

__mocks__/file-mock.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "test-file-stub"

loadershim.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
global.___loader = {
2+
enqueue: jest.fn(),
3+
}

postcss.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = () => ({
2+
plugins: [require("tailwindcss"), require("autoprefixer")],
3+
})

setup-test-env.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import "@testing-library/jest-dom/extend-expect"

src/lib/persist.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// secret stuff in here.
2+
3+
// increase this number to bust all locally stored mirage
4+
// databases
5+
let currentVersion = 4
6+
let initialData
7+
8+
function saveDb(server) {
9+
localStorage.setItem("mirage:db:version", currentVersion)
10+
localStorage.setItem("mirage:db:data", JSON.stringify(server.db.dump()))
11+
}
12+
13+
export function addPersist(server) {
14+
if (typeof window !== "undefined") {
15+
initialData = server.db.dump()
16+
let version = localStorage.getItem("mirage:db:version")
17+
let dataString = localStorage.getItem("mirage:db:data")
18+
19+
if (dataString && version === currentVersion.toString()) {
20+
try {
21+
resetDb(server, JSON.parse(dataString))
22+
} catch (e) {}
23+
}
24+
25+
let originalHandled = server.pretender.handledRequest
26+
server.pretender.handledRequest = function () {
27+
originalHandled.call(server.pretender, ...arguments)
28+
saveDb(server)
29+
}
30+
}
31+
}
32+
33+
export function resetDb(server, data = initialData) {
34+
server.db.emptyData()
35+
server.db.loadData(data)
36+
saveDb(server)
37+
}

0 commit comments

Comments
 (0)