Загрузка данных


$ git commit -am "TRADERADAR-14772: fix sonarqube's test coverage"
(node:18844) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use `node --trace-warnings ...` to show where the warning was created)
✔ Backed up original state in git stash (6a8e862)
⚠ Running tasks for staged files...
  ❯ package.json — 10 files
    ❯ *.{ts,tsx} — 10 files
      ✔ npm run lint:fix
      ✖ npm run test:related -- [FAILED]
    ↓ *.{js,jsx,css,scss,md,html} — no files
↓ Skipped because of errors from tasks.
✔ Reverting to original state because of errors...
✔ Cleaning up temporary files...

✖ npm run test:related --:

> moex-chart@0.1.0 test:related
> jest --findRelatedTests --passWithNoTests C:/Users/ShkinderDV/moex-chart/src/core/__tests__/Chart.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/CompareManager.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/ContainerManager.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/EventManager.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/IndicatorManager.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/MoexChart.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/Pane.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/PaneManager.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/ReactRenderer.test.ts C:/Users/ShkinderDV/moex-chart/src/core/__tests__/TimescaleHoverController.test.ts

 FAIL  src/core/__tests__/CompareManager.test.ts
  ● Test suite failed to run

    Configuration error:
    
    Could not locate module exchange-elements/dist/fonts/inter/font.css mapped as:
    C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs.
    
    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/\.(?:css|scss|sass)$/": "C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs"
      },
      "resolver": undefined
    }

      33 | import { UIRenderer } from './UIRenderer';
      34 |
    > 35 | import 'exchange-elements/dist/fonts/inter/font.css';
         | ^
      36 | import 'exchange-elements/dist/style.css';
      37 | import 'exchange-elements/dist/tokens/moex.css';
      38 | import '../styles/global.scss';

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/resolver.js:759:17)
      at Object.<anonymous> (src/core/MoexChart.tsx:35:1)
      at Object.<anonymous> (src/core/index.ts:1:1)
      at Object.<anonymous> (src/modules/series-strategies/SeriesFactory.ts:1:1)
      at Object.<anonymous> (src/core/Indicator.ts:9:1)
      at Object.<anonymous> (src/core/__tests__/CompareManager.test.ts:6:1)

 FAIL  src/core/__tests__/Pane.test.ts
  ● Test suite failed to run

    TypeError: (0 , _translations.getLocale) is not a function

      58 |
      59 | const getPluralRules = (): Intl.PluralRules => {
    > 60 |   const locale = getLocale();
         |                           ^
      61 |   const cachedRules = pluralRulesCache.get(locale);
      62 |
      63 |   if (cachedRules) {

      at getPluralRules (src/utils/formatTimeframeLabel.ts:60:27)
      at getUnitTranslationKey (src/utils/formatTimeframeLabel.ts:75:16)
      at formatTimeframeLabel (src/utils/formatTimeframeLabel.ts:82:24)
      at timeframeOption (src/components/Menu/TimeframesMenu/constants.ts:6:30)
      at timeframes (src/components/Menu/TimeframesMenu/constants.ts:12:7)
      at Object.<anonymous> (src/components/Menu/TimeframesMenu/constants.ts:54:27)
      at Object.<anonymous> (src/components/Menu/TimeframesMenu/index.tsx:8:1)
      at Object.<anonymous> (src/components/Menu/index.tsx:3:1)
      at Object.<anonymous> (src/components/Header/index.tsx:29:1)
      at Object.<anonymous> (src/core/MoexChart.tsx:6:1)
      at Object.<anonymous> (src/core/index.ts:1:1)
      at Object.<anonymous> (src/modules/series-strategies/SeriesFactory.ts:1:1)
      at Object.<anonymous> (src/core/Pane.tsx:22:1)
      at Object.<anonymous> (src/core/__tests__/Pane.test.ts:7:1)

 FAIL  src/core/__tests__/IndicatorManager.test.ts
  ● Test suite failed to run

    TypeError: Cannot read properties of undefined (reading 'DOW_DD_MM_YYYY_SLASH')

       5 | export const Defaults: ChartOptionsModel = {
       6 |   timeFormat: '24h',
    >  7 |   dateFormat: DateFormat.DOW_DD_MM_YYYY_SLASH,
         |                          ^
       8 |   showTime: true,
       9 | };
      10 | export const DEFAULT_TOOLTIPS_CONFIG: TooltipConfig = {

      at Object.<anonymous> (src/types/defaults.ts:7:26)
      at Object.<anonymous> (src/core/Drawings/axisLine/axisLine.ts:12:1)
      at Object.<anonymous> (src/core/Drawings/axisLine/index.ts:1:1)
      at Object.<anonymous> (src/constants/drawing.ts:1:1)
      at Object.<anonymous> (src/constants/index.ts:3:1)
      at Object.<anonymous> (src/core/Indicator.ts:8:1)
      at Object.<anonymous> (src/core/__tests__/IndicatorManager.test.ts:7:1)

 PASS  src/core/__tests__/ReactRenderer.test.ts
 FAIL  src/core/__tests__/PaneManager.test.ts
  ● Test suite failed to run

    Configuration error:
    
    Could not locate module exchange-elements/dist/fonts/inter/font.css mapped as:
    C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs.
    
    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/\.(?:css|scss|sass)$/": "C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs"
      },
      "resolver": undefined
    }

      33 | import { UIRenderer } from './UIRenderer';
      34 |
    > 35 | import 'exchange-elements/dist/fonts/inter/font.css';
         | ^
      36 | import 'exchange-elements/dist/style.css';
      37 | import 'exchange-elements/dist/tokens/moex.css';
      38 | import '../styles/global.scss';

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/resolver.js:759:17)
      at Object.<anonymous> (src/core/MoexChart.tsx:35:1)
      at Object.<anonymous> (src/core/index.ts:1:1)
      at Object.<anonymous> (src/modules/series-strategies/SeriesFactory.ts:1:1)
      at Object.<anonymous> (src/core/Pane.tsx:22:1)
      at Object.<anonymous> (src/core/__tests__/PaneManager.test.ts:5:1)

 FAIL  src/core/__tests__/Chart.test.ts
  ● Test suite failed to run

    Configuration error:
    
    Could not locate module exchange-elements/dist/fonts/inter/font.css mapped as:
    C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs.
    
    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/\.(?:css|scss|sass)$/": "C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs"
      },
      "resolver": undefined
    }

      33 | import { UIRenderer } from './UIRenderer';
      34 |
    > 35 | import 'exchange-elements/dist/fonts/inter/font.css';
         | ^
      36 | import 'exchange-elements/dist/style.css';
      37 | import 'exchange-elements/dist/tokens/moex.css';
      38 | import '../styles/global.scss';

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/resolver.js:759:17)
      at Object.<anonymous> (src/core/MoexChart.tsx:35:1)
      at Object.<anonymous> (src/core/index.ts:1:1)
      at Object.<anonymous> (src/modules/series-strategies/SeriesFactory.ts:1:1)
      at Object.<anonymous> (src/core/Indicator.ts:9:1)
      at Object.<anonymous> (src/core/IndicatorManager.ts:7:1)
      at Object.<anonymous> (src/core/Chart.ts:26:1)
      at Object.<anonymous> (src/core/__tests__/Chart.test.ts:3:1)

 PASS  src/core/__tests__/EventManager.test.ts
 FAIL  src/core/__tests__/TimescaleHoverController.test.ts
  ● Test suite failed to run

    Configuration error:
    
    Could not locate module exchange-elements/dist/fonts/inter/font.css mapped as:
    C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs.
    
    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/\.(?:css|scss|sass)$/": "C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs"
      },
      "resolver": undefined
    }

      33 | import { UIRenderer } from './UIRenderer';
      34 |
    > 35 | import 'exchange-elements/dist/fonts/inter/font.css';
         | ^
      36 | import 'exchange-elements/dist/style.css';
      37 | import 'exchange-elements/dist/tokens/moex.css';
      38 | import '../styles/global.scss';

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/resolver.js:759:17)
      at Object.<anonymous> (src/core/MoexChart.tsx:35:1)
      at Object.<anonymous> (src/core/index.ts:1:1)
      at Object.<anonymous> (src/modules/series-strategies/SeriesFactory.ts:1:1)
      at Object.<anonymous> (src/core/Indicator.ts:9:1)
      at Object.<anonymous> (src/core/IndicatorManager.ts:7:1)
      at Object.<anonymous> (src/core/Chart.ts:26:1)
      at Object.<anonymous> (src/components/ControlBar/index.tsx:7:1)
      at Object.<anonymous> (src/core/TimescaleHoverController.ts:1:1)
      at Object.<anonymous> (src/core/__tests__/TimescaleHoverController.test.ts:2:1)

 FAIL  src/core/__tests__/MoexChart.test.ts
  ● Test suite failed to run

    Configuration error:
    
    Could not locate module exchange-elements/dist/fonts/inter/font.css mapped as:
    C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs.
    
    Please check your configuration for these entries:
    {
      "moduleNameMapper": {
        "/\.(?:css|scss|sass)$/": "C:\Users\ShkinderDV\moex-chart\__mocks__\styleMock.cjs"
      },
      "resolver": undefined
    }

      33 | import { UIRenderer } from './UIRenderer';
      34 |
    > 35 | import 'exchange-elements/dist/fonts/inter/font.css';
         | ^
      36 | import 'exchange-elements/dist/style.css';
      37 | import 'exchange-elements/dist/tokens/moex.css';
      38 | import '../styles/global.scss';

      at createNoMappedModuleFoundError (node_modules/jest-resolve/build/resolver.js:759:17)
      at Object.<anonymous> (src/core/MoexChart.tsx:35:1)
      at Object.<anonymous> (src/core/__tests__/MoexChart.test.ts:1:1)

 FAIL  src/core/__tests__/ContainerManager.test.ts
  ● ContainerManager › createPaneContainers › должен создавать контейнеры панели с корректными настройками

    expect(received).toBe(expected) // Object.is equality

    Expected: "0px"
    Received: "0"

      166 |       expect(paneOverlayContainer.classList.contains(CHART_PANE_OVERLAY_CONTAINER)).toBe(true);
      167 |       expect(paneOverlayContainer.style.position).toBe('absolute');
    > 168 |       expect(paneOverlayContainer.style.inset).toBe('0px');
          |                                                ^
      169 |       expect(paneOverlayContainer.style.pointerEvents).toBe('none');
      170 |
      171 |       expect(paneEmptyStateContainer.classList.contains(CHART_PANE_EMPTY_STATE_CONTAINER)).toBe(true);

      at Object.<anonymous> (src/core/__tests__/ContainerManager.test.ts:168:48)

Test Suites: 8 failed, 2 passed, 10 total
Tests:       1 failed, 25 passed, 26 total
Snapshots:   0 total
Time:        23.572 s
Ran all test suites related to files matching /C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\Chart.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\CompareManager.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\ContainerManager.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\EventManager.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\IndicatorManager.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\MoexChart.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\Pane.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\PaneManager.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\ReactRenderer.test.ts|C:\\Users\\ShkinderDV\\moex-chart\\src\\core\\__tests__\\TimescaleHoverController.test.ts/i.
husky - pre-commit script failed (code 1)

shkinderdv@ovdi-nfcoff-087 MINGW64 ~/moex-chart (TRADERADAR-14772)
$ 




















// eslint-disable-next-line import/no-extraneous-dependencies
import '@testing-library/jest-dom';
import { TextDecoder, TextEncoder } from 'util';

Object.assign(global, { TextDecoder, TextEncoder });





import { readFileSync } from 'fs';

import JSON5 from 'json5';
import { pathsToModuleNameMapper } from 'ts-jest';

import type { Config } from '@jest/types';

const fileContent = readFileSync('./tsconfig.json');
const fileContentJSON = JSON5.parse(fileContent.toString());

const config: Config.InitialOptions = {
  clearMocks: true,
  resetMocks: true,
  restoreMocks: true,
  testEnvironment: 'jsdom',
  testRegex: '[/\\\\]src[/\\\\].*\\.(?:test|spec)\\.[jt]sx?$',
  setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
  moduleDirectories: ['node_modules', '<rootDir>'],
  transform: {
    '^.+\\.[cm]?[jt]sx?$': [
      'babel-jest',
      {
        babelrc: false,
        configFile: false,
        presets: [
          ['@babel/preset-env', { targets: { node: 'current' }, modules: 'commonjs' }],
          ['@babel/preset-react', { runtime: 'automatic' }],
          ['@babel/preset-typescript', { allowDeclareFields: true }],
        ],
      },
    ],
  },
  transformIgnorePatterns: [],
  moduleNameMapper: {
    ...pathsToModuleNameMapper(fileContentJSON.compilerOptions.paths),
    '^lightweight-charts$': '<rootDir>/node_modules/lightweight-charts/dist/lightweight-charts.development.mjs',
    '^exchange-elements/v2$': '<rootDir>/node_modules/exchange-elements/dist/v2.cjs.js',
    '\\.module\\.(?:css|scss|sass)$': 'identity-obj-proxy',
    '\\.(?:css|scss|sass)$': '<rootDir>/__mocks__/styleMock.cjs',
  },
  coverageDirectory: '<rootDir>/coverage',
  coverageReporters: ['text', 'lcov'],
};

export default config;





{
  "name": "moex-chart",
  "version": "0.1.0",
  "description": "",
  "type": "module",
  "main": "dist/index.cjs",
  "types": "types/index.d.ts",
  "files": [
    "dist",
    "types"
  ],
  "sideEffects": [
    "**/*css",
    "**/*.scss"
  ],
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.cjs",
      "types": "./types/index.d.ts"
    },
    "./package.json": "./package.json",
    "./dist/styles.css": {
      "import": "./dist/styles.css",
      "require": "./dist/styles.css"
    }
  },
  "scripts": {
    "postbuild:storybook": "sed -i 's#<head>#<head>\\n<base href='/storybook/'>#' ./storybook-static/index.html ./storybook-static/iframe.html",
    "clean:dist": "powershell -NoProfile -Command \"if (Test-Path dist) { Remove-Item -Recurse -Force dist }\"",
    "clean:types": "powershell -NoProfile -Command \"if (Test-Path types) { Remove-Item -Recurse -Force types }\"",
    "build:lib:js": "webpack --config webpack.lib.config.cjs",
    "build:lib:types": "tsc --project tsconfig.types.json && tsc-alias -p tsconfig.types.json",
    "build:lib": "npm run clean:dist && npm run clean:types && npm run build:lib:js && npm run build:lib:types",
    "test": "jest",
    "test:related": "jest --findRelatedTests --passWithNoTests",
    "coverage": "jest --coverage",
    "lint:fix": "npx prettier src --write && npx eslint src --fix",
    "lint": "npx eslint src",
    "prettier-check": "npx prettier src --check",
    "prettier-fix": "npx prettier src --write",
    "prepare": "husky",
    "storybook": "storybook dev -p 6006",
    "storybook-local": "cross-env buildType=local storybook dev -p 6006",
    "start": "npm run storybook-local",
    "build-storybook": "storybook build",
    "build-storybook-local": "cross-env buildType=local storybook build",
    "typecheck": "npx tsc -p tsconfig.json --noEmit",
    "typecheck:watch": "npx tsc -p tsconfig.json --noEmit -w"
  },
  "keywords": [],
  "author": "MOEX",
  "license": "UNLICENSED",
  "devDependencies": {
    "@babel/core": "^7.21.0",
    "@babel/preset-env": "^7.28.3",
    "@babel/preset-react": "^7.27.1",
    "@babel/preset-typescript": "^7.27.1",
    "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
    "@storybook/addon-actions": "^7.6.13",
    "@storybook/addon-controls": "^7.6.13",
    "@storybook/addon-docs": "^7.6.13",
    "@storybook/addon-essentials": "^7.6.13",
    "@storybook/addon-interactions": "^7.6.13",
    "@storybook/addon-links": "^7.6.13",
    "@storybook/builder-webpack5": "^7.6.13",
    "@storybook/components": "^7.6.13",
    "@storybook/manager-webpack5": "^6.5.16",
    "@storybook/preset-scss": "^1.0.3",
    "@storybook/react": "^7.6.13",
    "@storybook/react-webpack5": "^7.6.13",
    "@storybook/testing-library": "^0.0.13",
    "@testing-library/dom": "^9.3.4",
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@types/jest": "^27.5.2",
    "@types/lodash-es": "^4.17.12",
    "@types/markdown-it": "^14.0.1",
    "@types/markdown-it-link-attributes": "^3.0.5",
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.10",
    "@types/react-window": "^1.8.5",
    "@types/sanitize-html": "^2.11.0",
    "@typescript-eslint/eslint-plugin": "^5.52.0",
    "@typescript-eslint/parser": "^5.52.0",
    "autoprefixer": "^10.4.21",
    "babel-jest": "^29.7.0",
    "babel-loader": "^8.3.0",
    "copy-webpack-plugin": "^11.0.0",
    "cross-env": "^7.0.3",
    "css-loader": "^6.7.3",
    "css-minimizer-webpack-plugin": "^3.4.1",
    "dotenv-webpack": "^8.0.1",
    "eslint": "^8.34.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-prettier": "^8.6.0",
    "eslint-import-resolver-typescript": "^3.10.1",
    "eslint-import-resolver-webpack": "^0.13.2",
    "eslint-plugin-eslint-comments": "^3.2.0",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-jest": "^25.7.0",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-prettier": "^4.2.1",
    "eslint-plugin-react": "^7.32.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.5.0",
    "husky": "^9.1.5",
    "identity-obj-proxy": "^3.0.0",
    "jest": "^29.7.0",
    "jest-environment-jsdom": "^29.5.0",
    "json5": "^2.2.3",
    "mini-css-extract-plugin": "^2.7.2",
    "postcss": "^8.5.6",
    "postcss-loader": "^4.3.0",
    "prettier": "^3.3.3",
    "react": "^18.2.0",
    "react-docgen-typescript-plugin": "^0.5.1",
    "react-dom": "^18.2.0",
    "react-refresh": "^0.14.0",
    "react-refresh-typescript": "^2.0.8",
    "sass": "^1.58.1",
    "sass-loader": "^13.2.0",
    "storybook": "^7.6.13",
    "storybook-addon-sass-postcss": "^0.1.3",
    "style-loader": "^3.3.1",
    "terser-webpack-plugin": "^5.3.6",
    "ts-jest": "^29.1.5",
    "ts-loader": "^9.4.2",
    "ts-node": "10.9.1",
    "tsc-alias": "^1.8.16",
    "type-fest": "^3.6.1",
    "typescript": "^5.5.3",
    "typescript-plugin-css-modules": "^4.1.1",
    "webpack": "^5.75.0",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^4.11.1"
  },
  "dependencies": {
    "@dnd-kit/core": "^6.1.0",
    "@dnd-kit/modifiers": "^7.0.0",
    "@dnd-kit/sortable": "^8.0.0",
    "@dnd-kit/utilities": "^3.2.2",
    "@stomp/stompjs": "^7.1.1",
    "classnames": "^2.3.2",
    "dayjs": "^1.11.7",
    "dotenv": "^16.4.7",
    "exchange-elements": "^0.0.257",
    "fancy-canvas": "2.1.0",
    "lightweight-charts": "5.2.0",
    "lodash-es": "^4.17.21",
    "rxjs": "^7.8.2",
    "uuid": "^11.0.3"
  },
  "peerDependencies": {
    "react": "18.2.0",
    "react-dom": "18.2.0"
  },
  "overrides": {
    "@storybook/mdx2-csf": "1.0.0"
  },
  "lint-staged": {
    "*.{ts,tsx}": [
      "npm run lint:fix",
      "npm run test:related --"
    ],
    "*.{js,jsx,css,scss,md,html}": [
      "npm run lint:fix"
    ]
  }
}