add concurrent pages test
This commit is contained in:
@@ -29,7 +29,6 @@ const useExtensionStore = createStore<ExtensionState>((set) => ({
|
||||
errorText: undefined,
|
||||
}))
|
||||
|
||||
|
||||
// @ts-ignore
|
||||
globalThis.toggleExtensionForActiveTab = toggleExtensionForActiveTab
|
||||
|
||||
@@ -45,17 +44,17 @@ async function toggleExtensionForActiveTab(): Promise<{ isConnected: boolean; st
|
||||
const check = () => {
|
||||
const state = useExtensionStore.getState()
|
||||
const tabInfo = state.connectedTabs.get(tab.id!)
|
||||
|
||||
|
||||
// If we are connecting, wait
|
||||
if (tabInfo?.state === 'connecting') {
|
||||
setTimeout(check, 100)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// Also wait if global connection is reconnecting
|
||||
if (state.connectionState === 'reconnecting') {
|
||||
setTimeout(check, 100)
|
||||
return
|
||||
setTimeout(check, 100)
|
||||
return
|
||||
}
|
||||
|
||||
resolve()
|
||||
@@ -65,13 +64,17 @@ async function toggleExtensionForActiveTab(): Promise<{ isConnected: boolean; st
|
||||
|
||||
const state = useExtensionStore.getState()
|
||||
const isConnected = state.connectedTabs.has(tab.id) && state.connectedTabs.get(tab.id)?.state === 'connected'
|
||||
|
||||
|
||||
return { isConnected, state }
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
globalThis.getExtensionState = () => useExtensionStore.getState()
|
||||
|
||||
declare global {
|
||||
var state: typeof useExtensionStore
|
||||
var toggleExtensionForActiveTab: () => Promise<{ isConnected: boolean; state: ExtensionState }>
|
||||
var getExtensionState: () => ExtensionState
|
||||
}
|
||||
|
||||
async function resetDebugger() {
|
||||
@@ -86,6 +89,9 @@ async function resetDebugger() {
|
||||
resetDebugger()
|
||||
|
||||
chrome.runtime.onInstalled.addListener((details) => {
|
||||
if (import.meta.env.TESTING) {
|
||||
return
|
||||
}
|
||||
if (details.reason === 'install') {
|
||||
void chrome.tabs.create({ url: 'welcome.html' })
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"rootDir": "src",
|
||||
"outDir": "./dist/lib",
|
||||
"resolveJsonModule": true,
|
||||
"types": ["chrome"],
|
||||
"types": ["chrome", "vite/client"],
|
||||
"jsx": "react-jsx",
|
||||
"jsxImportSource": "react",
|
||||
"noEmit": true
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname, resolve } from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
@@ -7,6 +6,11 @@ import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
const defineEnv: Record<string, string> = {};
|
||||
if (process.env.TESTING) {
|
||||
defineEnv['import.meta.env.TESTING'] = 'true';
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
viteStaticCopy({
|
||||
@@ -26,6 +30,7 @@ export default defineConfig({
|
||||
]
|
||||
})
|
||||
],
|
||||
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, 'src/background.ts'),
|
||||
@@ -35,5 +40,6 @@ export default defineConfig({
|
||||
outDir: 'dist',
|
||||
emptyOutDir: false,
|
||||
minify: false
|
||||
}
|
||||
},
|
||||
define: defineEnv
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user