38cce46c7b
* feat: start working on redux migrations * feat: fix migations and add tests * feat: fix persistence and improve tests * fix: tests * fix: rename test file so it doesnt run in jest * fix: tests * fix: lint * feat: indexedDB * fix: e2e tests * fix: address some comments * fix: update legacy migrations * fix: fix rehydrations * fix: remove PersistGate and fix e2e tests * fix: add comment to helper function
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { ConnectionType } from '../../src/connection/types'
|
|
import { UserState } from '../../src/state/user/reducer'
|
|
|
|
export const CONNECTED_WALLET_USER_STATE: Partial<UserState> = { selectedWallet: ConnectionType.INJECTED }
|
|
|
|
export const DISCONNECTED_WALLET_USER_STATE: Partial<UserState> = { selectedWallet: undefined }
|
|
|
|
/**
|
|
* This sets the initial value of the "user" slice in IndexedDB.
|
|
* Other persisted slices are not set, so they will be filled with their respective initial values
|
|
* when the app runs.
|
|
*/
|
|
export function setInitialUserState(win: Cypress.AUTWindow, initialUserState: any) {
|
|
win.indexedDB.deleteDatabase('redux')
|
|
|
|
const dbRequest = win.indexedDB.open('redux')
|
|
|
|
dbRequest.onsuccess = function () {
|
|
const db = dbRequest.result
|
|
const transaction = db.transaction('keyvaluepairs', 'readwrite')
|
|
const store = transaction.objectStore('keyvaluepairs')
|
|
store.put(
|
|
{
|
|
user: initialUserState,
|
|
},
|
|
'persist:interface'
|
|
)
|
|
}
|
|
|
|
dbRequest.onupgradeneeded = function () {
|
|
const db = dbRequest.result
|
|
db.createObjectStore('keyvaluepairs')
|
|
}
|
|
}
|