mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
// We set this specifically for 2 reasons.
 | 
						|
// 1. It makes sense for both CI tests and local tests to behave the same so issues are found earlier
 | 
						|
// 2. Any wrong timezone handling could be hidden if we use UTC/GMT local time (which would happen in CI).
 | 
						|
process.env.TZ = 'Pacific/Easter'; // UTC-06:00 or UTC-05:00 depending on daylight savings
 | 
						|
 | 
						|
const esModules = [
 | 
						|
  '@glideapps/glide-data-grid',
 | 
						|
  'ol',
 | 
						|
  'd3',
 | 
						|
  'd3-color',
 | 
						|
  'd3-interpolate',
 | 
						|
  'delaunator',
 | 
						|
  'internmap',
 | 
						|
  'robust-predicates',
 | 
						|
  'leven',
 | 
						|
  'nanoid',
 | 
						|
  'monaco-promql',
 | 
						|
  '@kusto/monaco-kusto',
 | 
						|
  'monaco-editor',
 | 
						|
  '@msagl',
 | 
						|
  'lodash-es',
 | 
						|
  'vscode-languageserver-types',
 | 
						|
  '@bsull/augurs',
 | 
						|
].join('|');
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  verbose: false,
 | 
						|
  testEnvironment: 'jsdom',
 | 
						|
  transform: {
 | 
						|
    '^.+\\.(ts|tsx|js|jsx)$': [require.resolve('ts-jest'), { isolatedModules: true }],
 | 
						|
  },
 | 
						|
  transformIgnorePatterns: [
 | 
						|
    `/node_modules/(?!${esModules})`, // exclude es modules to prevent TS complaining
 | 
						|
  ],
 | 
						|
  moduleDirectories: ['public', 'node_modules'],
 | 
						|
  roots: ['<rootDir>/public/app', '<rootDir>/public/test', '<rootDir>/packages', '<rootDir>/scripts/tests'],
 | 
						|
  testRegex: '(\\.|/)(test)\\.(jsx?|tsx?)$',
 | 
						|
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
 | 
						|
  setupFiles: ['jest-canvas-mock', './public/test/jest-setup.ts'],
 | 
						|
  testTimeout: 30000,
 | 
						|
  resolver: `<rootDir>/public/test/jest-resolver.js`,
 | 
						|
  setupFilesAfterEnv: ['./public/test/setupTests.ts'],
 | 
						|
  globals: {
 | 
						|
    __webpack_public_path__: '', // empty string
 | 
						|
  },
 | 
						|
  moduleNameMapper: {
 | 
						|
    '\\.svg': '<rootDir>/public/test/mocks/svg.ts',
 | 
						|
    '\\.css': '<rootDir>/public/test/mocks/style.ts',
 | 
						|
    'react-inlinesvg': '<rootDir>/public/test/mocks/react-inlinesvg.tsx',
 | 
						|
    // resolve directly as monaco and kusto don't have main property in package.json which jest needs
 | 
						|
    '^monaco-editor$': 'monaco-editor/esm/vs/editor/editor.api.js',
 | 
						|
    '@kusto/monaco-kusto': '@kusto/monaco-kusto/release/esm/monaco.contribution.js',
 | 
						|
    // near-membrane-dom won't work in a nodejs environment.
 | 
						|
    '@locker/near-membrane-dom': '<rootDir>/public/test/mocks/nearMembraneDom.ts',
 | 
						|
    '^@grafana/schema/dist/esm/(.*)$': '<rootDir>/packages/grafana-schema/src/$1',
 | 
						|
    // prevent systemjs amd extra from breaking tests.
 | 
						|
    'systemjs/dist/extras/amd': '<rootDir>/public/test/mocks/systemjsAMDExtra.ts',
 | 
						|
    '@bsull/augurs': '<rootDir>/public/test/mocks/augurs.ts',
 | 
						|
  },
 | 
						|
  // Log the test results with dynamic Loki tags. Drone CI only
 | 
						|
  reporters: ['default', ['<rootDir>/public/test/log-reporter.js', { enable: process.env.DRONE === 'true' }]],
 | 
						|
  watchPlugins: ['jest-watch-typeahead/filename', 'jest-watch-typeahead/testname'],
 | 
						|
};
 |