feat: add support for nip44
This commit is contained in:
86
extension/test-utils.js
Normal file
86
extension/test-utils.js
Normal file
@@ -0,0 +1,86 @@
|
||||
import { vi } from 'vitest'
|
||||
|
||||
const storage = {}
|
||||
let notificationId = 0
|
||||
let notifications = []
|
||||
|
||||
export const mockBrowser = {
|
||||
storage: {
|
||||
local: {
|
||||
get: vi.fn((keys) => {
|
||||
if (typeof keys === 'string') {
|
||||
return Promise.resolve({ [keys]: storage[keys] })
|
||||
}
|
||||
if (Array.isArray(keys)) {
|
||||
const result = {}
|
||||
keys.forEach((key) => {
|
||||
result[key] = storage[key]
|
||||
})
|
||||
return Promise.resolve(result)
|
||||
}
|
||||
if (keys && typeof keys === 'object') {
|
||||
const result = {}
|
||||
Object.keys(keys).forEach((key) => {
|
||||
result[key] = storage[key] !== undefined ? storage[key] : keys[key]
|
||||
})
|
||||
return Promise.resolve(result)
|
||||
}
|
||||
return Promise.resolve({})
|
||||
}),
|
||||
set: vi.fn((obj) => {
|
||||
Object.assign(storage, obj)
|
||||
return Promise.resolve()
|
||||
}),
|
||||
remove: vi.fn((keys) => {
|
||||
if (Array.isArray(keys)) {
|
||||
keys.forEach((key) => delete storage[key])
|
||||
} else {
|
||||
delete storage[keys]
|
||||
}
|
||||
return Promise.resolve()
|
||||
}),
|
||||
clear: vi.fn(() => {
|
||||
Object.keys(storage).forEach((key) => delete storage[key])
|
||||
return Promise.resolve()
|
||||
}),
|
||||
_reset: () => {
|
||||
Object.keys(storage).forEach((key) => delete storage[key])
|
||||
}
|
||||
}
|
||||
},
|
||||
notifications: {
|
||||
create: vi.fn((id, options) => {
|
||||
notifications.push({ id, options })
|
||||
return `notification-${++notificationId}`
|
||||
}),
|
||||
_notifications: notifications,
|
||||
_reset: () => {
|
||||
notifications.length = 0
|
||||
notificationId = 0
|
||||
}
|
||||
},
|
||||
windows: {
|
||||
getLastFocused: vi.fn(() =>
|
||||
Promise.resolve({
|
||||
top: 100,
|
||||
left: 100,
|
||||
width: 1920,
|
||||
height: 1080
|
||||
})
|
||||
),
|
||||
create: vi.fn(() => Promise.resolve({ id: 123 })),
|
||||
remove: vi.fn(() => Promise.resolve()),
|
||||
get: vi.fn(() => Promise.resolve({ id: 123, top: 100, left: 100 }))
|
||||
},
|
||||
tabs: {
|
||||
create: vi.fn(() => Promise.resolve({ id: 456 })),
|
||||
remove: vi.fn(() => Promise.resolve())
|
||||
},
|
||||
runtime: {
|
||||
getURL: vi.fn((path) => `chrome-extension://abc123/${path}`)
|
||||
}
|
||||
}
|
||||
|
||||
global.browser = mockBrowser
|
||||
|
||||
export { storage }
|
||||
Reference in New Issue
Block a user