76 lines
1.3 KiB
JavaScript
76 lines
1.3 KiB
JavaScript
/**
|
|
* Mock for uni-app API
|
|
* Used for testing storage and request modules
|
|
*/
|
|
|
|
// In-memory storage for testing
|
|
const storage = new Map()
|
|
|
|
// Track auth redirects for testing
|
|
let authRedirectTriggered = false
|
|
let lastRedirectUrl = null
|
|
|
|
export const uni = {
|
|
// Storage APIs
|
|
setStorageSync(key, value) {
|
|
storage.set(key, value)
|
|
},
|
|
|
|
getStorageSync(key) {
|
|
return storage.get(key) ?? ''
|
|
},
|
|
|
|
removeStorageSync(key) {
|
|
storage.delete(key)
|
|
},
|
|
|
|
clearStorageSync() {
|
|
storage.clear()
|
|
},
|
|
|
|
// Navigation APIs
|
|
reLaunch(options) {
|
|
authRedirectTriggered = true
|
|
lastRedirectUrl = options.url
|
|
},
|
|
|
|
navigateTo(options) {
|
|
lastRedirectUrl = options.url
|
|
},
|
|
|
|
// Request API (mock)
|
|
request(options) {
|
|
// This will be overridden in specific tests
|
|
if (options.success) {
|
|
options.success({ statusCode: 200, data: { success: true } })
|
|
}
|
|
},
|
|
|
|
// Test helpers
|
|
_getStorage() {
|
|
return storage
|
|
},
|
|
|
|
_clearStorage() {
|
|
storage.clear()
|
|
},
|
|
|
|
_wasAuthRedirectTriggered() {
|
|
return authRedirectTriggered
|
|
},
|
|
|
|
_getLastRedirectUrl() {
|
|
return lastRedirectUrl
|
|
},
|
|
|
|
_resetRedirectState() {
|
|
authRedirectTriggered = false
|
|
lastRedirectUrl = null
|
|
}
|
|
}
|
|
|
|
// Make uni available globally for modules that expect it
|
|
globalThis.uni = uni
|
|
|
|
export default uni
|