refactor: move test-modes into commons to avoid js files in frontend

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2023-09-24 14:10:51 +02:00
parent 804fa325fb
commit 49ec70f2aa
No known key found for this signature in database
GPG key ID: FE1CD209E3EA5E85
18 changed files with 29 additions and 32 deletions

View file

@ -6,3 +6,4 @@
export * from './wait-for-other-promises-to-finish.js' export * from './wait-for-other-promises-to-finish.js'
export type { DeepPartial } from './deep-partial.js' export type { DeepPartial } from './deep-partial.js'
export * from './test-modes.js'

View file

@ -14,7 +14,7 @@
* @param {string} value The value to check * @param {string} value The value to check
* @return {boolean} {@code true} if the value describes a positive answer string * @return {boolean} {@code true} if the value describes a positive answer string
*/ */
const isPositiveAnswer = (value) => { export const isPositiveAnswer = (value: string) => {
const lowerValue = value.toLowerCase() const lowerValue = value.toLowerCase()
return lowerValue === 'yes' || lowerValue === '1' || lowerValue === 'true' return lowerValue === 'yes' || lowerValue === '1' || lowerValue === 'true'
} }
@ -23,37 +23,35 @@ const isPositiveAnswer = (value) => {
* Defines if the current runtime is built in e2e test mode. * Defines if the current runtime is built in e2e test mode.
* @type boolean * @type boolean
*/ */
const isTestMode = !!process.env.NEXT_PUBLIC_TEST_MODE && isPositiveAnswer(process.env.NEXT_PUBLIC_TEST_MODE) export const isTestMode =
!!process.env.NEXT_PUBLIC_TEST_MODE &&
isPositiveAnswer(process.env.NEXT_PUBLIC_TEST_MODE)
/** /**
* Defines if the current runtime should use the mocked backend. * Defines if the current runtime should use the mocked backend.
* @type boolean * @type boolean
*/ */
const isMockMode = !!process.env.NEXT_PUBLIC_USE_MOCK_API && isPositiveAnswer(process.env.NEXT_PUBLIC_USE_MOCK_API) export const isMockMode =
!!process.env.NEXT_PUBLIC_USE_MOCK_API &&
isPositiveAnswer(process.env.NEXT_PUBLIC_USE_MOCK_API)
/** /**
* Defines if the current runtime was built in development mode. * Defines if the current runtime was built in development mode.
* @type boolean * @type boolean
*/ */
const isDevMode = process.env.NODE_ENV === 'development' export const isDevMode = process.env.NODE_ENV === 'development'
/** /**
* Defines if the current runtime contains the bundle analyzer and profiling metrics. * Defines if the current runtime contains the bundle analyzer and profiling metrics.
* @type boolean * @type boolean
*/ */
const isProfilingMode = !!process.env.ANALYZE && isPositiveAnswer(process.env.ANALYZE) export const isProfilingMode =
!!process.env.ANALYZE && isPositiveAnswer(process.env.ANALYZE)
/** /**
* Defines if the currently running process is building or executing. * Defines if the currently running process is building or executing.
* *
* @type boolean * @type boolean
*/ */
const isBuildTime = !!process.env.BUILD_TIME && isPositiveAnswer(process.env.BUILD_TIME) export const isBuildTime =
!!process.env.BUILD_TIME && isPositiveAnswer(process.env.BUILD_TIME)
module.exports = {
isTestMode,
isMockMode,
isDevMode,
isProfilingMode,
isBuildTime
}

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
const { isMockMode, isTestMode, isProfilingMode, isBuildTime } = require('./src/utils/test-modes') const { isMockMode, isTestMode, isProfilingMode, isBuildTime } = require('@hedgedoc/commons')
const path = require('path') const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin')
const withBundleAnalyzer = require('@next/bundle-analyzer')({ const withBundleAnalyzer = require('@next/bundle-analyzer')({

View file

@ -5,7 +5,7 @@
*/ */
import { GetApiRequestBuilder } from '../common/api-request-builder/get-api-request-builder' import { GetApiRequestBuilder } from '../common/api-request-builder/get-api-request-builder'
import type { FrontendConfig } from './types' import type { FrontendConfig } from './types'
import { isBuildTime } from '../../utils/test-modes' import { isBuildTime } from '@hedgedoc/commons'
/** /**
* Fetches the frontend config from the backend. * Fetches the frontend config from the backend.

View file

@ -5,7 +5,7 @@
*/ */
import { refreshHistoryState } from '../../../redux/history/methods' import { refreshHistoryState } from '../../../redux/history/methods'
import { Logger } from '../../../utils/logger' import { Logger } from '../../../utils/logger'
import { isDevMode, isTestMode } from '../../../utils/test-modes' import { isDevMode, isTestMode } from '@hedgedoc/commons'
import { fetchAndSetUser } from '../../login-page/auth/utils' import { fetchAndSetUser } from '../../login-page/auth/utils'
import { loadDarkMode } from './load-dark-mode' import { loadDarkMode } from './load-dark-mode'
import { setUpI18n } from './setupI18n' import { setUpI18n } from './setupI18n'

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { isDevMode } from '../../../utils/test-modes' import { isDevMode } from '@hedgedoc/commons'
import type { ResourceKey } from 'i18next' import type { ResourceKey } from 'i18next'
import i18n, { use as i18nUse } from 'i18next' import i18n, { use as i18nUse } from 'i18next'
import LanguageDetector from 'i18next-browser-languagedetector' import LanguageDetector from 'i18next-browser-languagedetector'

View file

@ -6,7 +6,7 @@
import { concatCssClasses } from '../../../utils/concat-css-classes' import { concatCssClasses } from '../../../utils/concat-css-classes'
import { cypressAttribute, cypressId } from '../../../utils/cypress-attribute' import { cypressAttribute, cypressId } from '../../../utils/cypress-attribute'
import { Logger } from '../../../utils/logger' import { Logger } from '../../../utils/logger'
import { isTestMode } from '../../../utils/test-modes' import { isTestMode } from '@hedgedoc/commons'
import { useEditorToRendererCommunicator } from '../../editor-page/render-context/editor-to-renderer-communicator-context-provider' import { useEditorToRendererCommunicator } from '../../editor-page/render-context/editor-to-renderer-communicator-context-provider'
import type { ScrollProps } from '../../editor-page/synced-scroll/scroll-props' import type { ScrollProps } from '../../editor-page/synced-scroll/scroll-props'
import { useExtensionEventEmitter } from '../../markdown-renderer/hooks/use-extension-event-emitter' import { useExtensionEventEmitter } from '../../markdown-renderer/hooks/use-extension-event-emitter'

View file

@ -6,8 +6,7 @@
import { useApplicationState } from '../../../../../hooks/common/use-application-state' import { useApplicationState } from '../../../../../hooks/common/use-application-state'
import { getGlobalState } from '../../../../../redux' import { getGlobalState } from '../../../../../redux'
import { setRealtimeConnectionState } from '../../../../../redux/realtime/methods' import { setRealtimeConnectionState } from '../../../../../redux/realtime/methods'
import { Logger } from '../../../../../utils/logger' import { Logger, isMockMode } from '@hedgedoc/commons'
import { isMockMode } from '../../../../../utils/test-modes'
import { FrontendWebsocketAdapter } from './frontend-websocket-adapter' import { FrontendWebsocketAdapter } from './frontend-websocket-adapter'
import { useWebsocketUrl } from './use-websocket-url' import { useWebsocketUrl } from './use-websocket-url'
import { MessageTransporter, MockedBackendTransportAdapter } from '@hedgedoc/commons' import { MessageTransporter, MockedBackendTransportAdapter } from '@hedgedoc/commons'

View file

@ -5,7 +5,7 @@
*/ */
import { useApplicationState } from '../../../../../hooks/common/use-application-state' import { useApplicationState } from '../../../../../hooks/common/use-application-state'
import { useBaseUrl } from '../../../../../hooks/common/use-base-url' import { useBaseUrl } from '../../../../../hooks/common/use-base-url'
import { isMockMode } from '../../../../../utils/test-modes' import { isMockMode } from '@hedgedoc/commons'
import { useMemo } from 'react' import { useMemo } from 'react'
const LOCAL_FALLBACK_URL = 'ws://localhost:8080/realtime/' const LOCAL_FALLBACK_URL = 'ws://localhost:8080/realtime/'

View file

@ -3,8 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { Logger } from '../../../utils/logger' import { Logger, isDevMode } from '@hedgedoc/commons'
import { isDevMode } from '../../../utils/test-modes'
import { MarkdownRendererExtension } from './_base-classes/markdown-renderer-extension' import { MarkdownRendererExtension } from './_base-classes/markdown-renderer-extension'
import type MarkdownIt from 'markdown-it' import type MarkdownIt from 'markdown-it'

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { isMockMode, isTestMode } from '../utils/test-modes' import { isMockMode, isTestMode } from '@hedgedoc/commons'
import type { NextApiRequest, NextApiResponse } from 'next' import type { NextApiRequest, NextApiResponse } from 'next'
export enum HttpMethod { export enum HttpMethod {

View file

@ -10,7 +10,7 @@ import {
respondToMatchingRequest, respondToMatchingRequest,
respondToTestRequest respondToTestRequest
} from '../../../handler-utils/respond-to-matching-request' } from '../../../handler-utils/respond-to-matching-request'
import { isTestMode } from '../../../utils/test-modes' import { isTestMode } from '@hedgedoc/commons'
import type { NextApiRequest, NextApiResponse } from 'next' import type { NextApiRequest, NextApiResponse } from 'next'
const initialConfig: FrontendConfig = { const initialConfig: FrontendConfig = {

View file

@ -5,7 +5,7 @@
*/ */
import type { MediaUpload } from '../../../api/media/types' import type { MediaUpload } from '../../../api/media/types'
import { HttpMethod, respondToMatchingRequest } from '../../../handler-utils/respond-to-matching-request' import { HttpMethod, respondToMatchingRequest } from '../../../handler-utils/respond-to-matching-request'
import { isMockMode, isTestMode } from '../../../utils/test-modes' import { isMockMode, isTestMode } from '@hedgedoc/commons'
import type { NextApiRequest, NextApiResponse } from 'next' import type { NextApiRequest, NextApiResponse } from 'next'
const handler = async (req: NextApiRequest, res: NextApiResponse): Promise<void> => { const handler = async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { isDevMode } from '../utils/test-modes' import { isDevMode } from '@hedgedoc/commons'
import type { ApplicationState } from './application-state' import type { ApplicationState } from './application-state'
import { allReducers } from './reducers' import { allReducers } from './reducers'
import { configureStore } from '@reduxjs/toolkit' import { configureStore } from '@reduxjs/toolkit'

View file

@ -5,7 +5,7 @@
*/ */
import type { BaseUrls } from '../components/common/base-url/base-url-context-provider' import type { BaseUrls } from '../components/common/base-url/base-url-context-provider'
import { Logger } from './logger' import { Logger } from './logger'
import { isTestMode, isBuildTime } from './test-modes' import { isTestMode, isBuildTime } from '@hedgedoc/commons'
import { NoSubdirectoryAllowedError, parseUrl } from '@hedgedoc/commons' import { NoSubdirectoryAllowedError, parseUrl } from '@hedgedoc/commons'
import { Optional } from '@mrdrogdrog/optional' import { Optional } from '@mrdrogdrog/optional'

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { isTestMode } from './test-modes' import { isTestMode } from '@hedgedoc/commons'
export interface PropsWithDataCypressId { export interface PropsWithDataCypressId {
'data-cypress-id'?: string | undefined 'data-cypress-id'?: string | undefined

View file

@ -9,7 +9,7 @@ import { Mock } from 'ts-mockery'
let testMode = false let testMode = false
let devMode = false let devMode = false
jest.mock('./test-modes', () => ({ jest.mock('@hedgedoc/commons', () => ({
get isTestMode() { get isTestMode() {
return testMode return testMode
}, },

View file

@ -3,7 +3,7 @@
* *
* SPDX-License-Identifier: AGPL-3.0-only * SPDX-License-Identifier: AGPL-3.0-only
*/ */
import { isDevMode, isTestMode } from './test-modes' import { isDevMode, isTestMode } from '@hedgedoc/commons'
import { DateTime } from 'luxon' import { DateTime } from 'luxon'
import pico from 'picocolors' import pico from 'picocolors'