diff --git a/packages/app/src/pages/_app.tsx b/packages/app/src/pages/_app.tsx index 9446954124..091e1b66de 100644 --- a/packages/app/src/pages/_app.tsx +++ b/packages/app/src/pages/_app.tsx @@ -6,7 +6,7 @@ import './temporary.css'; import { Logger } from '@toeverything/pathfinder-logger'; import '@fontsource/space-mono'; import '@fontsource/poppins'; -import '../utils/print-build-info'; +import { printBuildInfo } from '../utils/print-build-info'; import ProviderComposer from '@/components/provider-composer'; import type { PropsWithChildren, ReactElement, ReactNode } from 'react'; import type { NextPage } from 'next'; @@ -34,7 +34,9 @@ type AppPropsWithLayout = AppProps & { const App = ({ Component, pageProps }: AppPropsWithLayout) => { const getLayout = Component.getLayout || (page => page); - + useEffect(() => { + printBuildInfo(); + }, []); return ( <> diff --git a/packages/app/src/utils/print-build-info.ts b/packages/app/src/utils/print-build-info.ts index 61e85c1763..01073e7830 100644 --- a/packages/app/src/utils/print-build-info.ts +++ b/packages/app/src/utils/print-build-info.ts @@ -12,11 +12,19 @@ type Config = { const nextConfig = getConfig(); const publicRuntimeConfig: Config = nextConfig.publicRuntimeConfig; - +const setAffineAppProperties = () => { + const input = document.createElement('input'); + const id = 'editor-version'; + if (document.getElementById(id)) { + return; + } + input.value = publicRuntimeConfig.EDITOR_VERSION; + input.type = 'hidden'; + input.id = id; + input.setAttribute('data-testid', 'editor-version'); + document.body.appendChild(input); +}; const printBuildInfo = () => { - // if (isDev) { - // return; - // } console.group('Build info'); console.log('Project:', publicRuntimeConfig.PROJECT_NAME); console.log( @@ -30,6 +38,7 @@ const printBuildInfo = () => { `${publicRuntimeConfig.NODE_ENV}${publicRuntimeConfig.CI ? '(ci)' : ''}` ); console.log('Editor Version:', publicRuntimeConfig.EDITOR_VERSION); + console.log('Version:', publicRuntimeConfig.VERSION); console.log( 'AFFiNE is an open source project, you can view its source code on GitHub!' @@ -38,8 +47,8 @@ const printBuildInfo = () => { `https://github.com/toeverything/AFFiNE/tree/${publicRuntimeConfig.COMMIT_HASH}` ); console.groupEnd(); + + setAffineAppProperties(); }; -printBuildInfo(); - -export {}; +export { printBuildInfo }; diff --git a/tests/console.spec.ts b/tests/console.spec.ts new file mode 100644 index 0000000000..7208945df3 --- /dev/null +++ b/tests/console.spec.ts @@ -0,0 +1,24 @@ +import { test, expect } from '@playwright/test'; +import { loadPage } from './libs/load-page'; +import pkg from './../packages/app/package.json'; + +loadPage(); + +test.describe('web console', () => { + test('editor version', async ({ page }) => { + // https://playwright.dev/docs/evaluating + // https://github.com/microsoft/playwright/issues/13059 + // Get the handle to a specific function. + // const getEditoVersionHandle = await page.evaluate( + // 'window.__getEditoVersion' + // ); + //Later on, call this function with some arguments. + // const msg = await getEditoVersionHandle.evaluate((post, args) => post); + // console.log(getEditoVersionHandle); + const documentEditorVersion = await page.inputValue('input#editor-version'); + const pkgEditorVersion = pkg.dependencies['@blocksuite/editor']; + + expect(documentEditorVersion).toBe(pkgEditorVersion); + console.log('pkgEditorVersion', pkgEditorVersion); + }); +});