WSL/SLF GitLab Repository

Commit 60079965 authored by Sam's avatar Sam
Browse files

Merge branch 'develop' into 'staging'

merge 0.7.52 develop into staging

See merge request !1
parents 049f32bd cd30d804
Pipeline #1582 passed with stages
in 21 minutes and 44 seconds
......@@ -5,13 +5,17 @@ module.exports = {
sourceType: 'module',
ecmaVersion: 2021,
},
env: { es2021: true },
env: {
es2021: true,
'vitest-globals/env': true,
},
extends: [
'airbnb-base',
'plugin:vue/essential',
'plugin:import/recommended',
'prettier',
'plugin:storybook/recommended',
'plugin:vitest-globals/recommended',
],
settings: {
'import/resolver': {
......@@ -76,10 +80,4 @@ module.exports = {
'import/newline-after-import': 'error',
'import/no-duplicates': 'error',
},
overrides: [{
files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
env: {
jest: true,
},
}],
};
......@@ -78,7 +78,7 @@ run-tests:
before_script:
- npm install
script:
- npm run test:unit
- npm run test
# visual-regression:
# extends: .trigger-rules
......@@ -116,15 +116,11 @@ modify-env:
key = 'VITE_ENVIDAT_PROXY';
value = 'https://envidat.ch' if branch == 'main' \
else f'https://ckan-{branch}.envidat.ch';
dotenv.set_key(file, key, value, quote_mode='never'); \
dotenv.set_key(file, key, value, quote_mode='never');
\
key = 'VITE_CONFIG_URL';
value = 'https://frontend-config.s3-zh.os.switch.ch/prod.json' \
if branch == 'main' \
else ( \
f'https://frontend-config.s3-zh.os.switch.ch/{branch}.json' \
);
dotenv.set_key(file, key, value, quote_mode='never'); \
value = f'https://frontend-config.s3-zh.os.switch.ch/{branch}.json';
dotenv.set_key(file, key, value, quote_mode='never');
\
key = 'VITE_ENVIDAT_DOMAIN';
value = 'https://frontend.s3-website-zh.os.switch.ch' \
......
......@@ -13,6 +13,7 @@ const VitePluginFonts = require('vite-plugin-fonts').default;
const cesiumSource = '../node_modules/cesium/Source';
const version = process.env.npm_package_version;
module.exports = {
"stories": [
......@@ -100,6 +101,13 @@ module.exports = {
{ find: 'vue', replacement: 'vue/dist/vue.esm.js' },
],
},
build: {
minify: false,
sourcemap: false,
define: {
'import.meta.env.VITE_VERSION': JSON.stringify(version),
},
},
});
},
};
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
module.exports = {
// All imported modules in your tests should be mocked automatically
// automock: false,
// Stop running tests after `n` failures
// bail: 0,
// Respect "browser" field in package.json when resolving modules
// browser: false,
// The directory where Jest should store its cached dependency information
// cacheDirectory: "C:\\Users\\Domi\\AppData\\Local\\Temp\\jest",
// Automatically clear mock calls and instances between every test
clearMocks: true,
// Indicates whether the coverage information should be collected while executing the test
// collectCoverage: false,
// An array of glob patterns indicating a set of files for which coverage information should be collected
// collectCoverageFrom: null,
// The directory where Jest should output its coverage files
coverageDirectory: 'coverage',
// An array of regexp pattern strings used to skip coverage collection
// coveragePathIgnorePatterns: [
// "\\\\node_modules\\\\"
// ],
// A list of reporter names that Jest uses when writing coverage reports
// coverageReporters: [
// "json",
// "text",
// "lcov",
// "clover"
// ],
// An object that configures minimum threshold enforcement for coverage results
// coverageThreshold: null,
// A path to a custom dependency extractor
// dependencyExtractor: null,
// Make calling deprecated APIs throw helpful error messages
// errorOnDeprecated: false,
// Force coverage collection from ignored files using an array of glob patterns
// forceCoverageMatch: [],
// A path to a module which exports an async function that is triggered once before all test suites
// globalSetup: null,
// A path to a module which exports an async function that is triggered once after all test suites
// globalTeardown: null,
// A set of global variables that need to be available in all test environments
// globals: {},
// The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
// maxWorkers: "50%",
// An array of directory names to be searched recursively up from the requiring module's location
// moduleDirectories: [
// "node_modules"
// ],
// An array of file extensions your modules use
// moduleFileExtensions: [
// "js",
// "json",
// "jsx",
// "ts",
// "tsx",
// "node"
// ],
// A map from regular expressions to module names that allow to stub out resources with a single module
// moduleNameMapper: {},
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
// modulePathIgnorePatterns: [],
// Activates notifications for test results
// notify: false,
// An enum that specifies notification mode. Requires { notify: true }
// notifyMode: "failure-change",
// A preset that is used as a base for Jest's configuration
// preset: null,
// Run tests from one or more projects
// projects: null,
// Use this configuration option to add custom reporters to Jest
// reporters: undefined,
// Automatically reset mock state between every test
// resetMocks: false,
// Reset the module registry before running each individual test
// resetModules: false,
// A path to a custom resolver
// resolver: null,
// Automatically restore mock state between every test
// restoreMocks: false,
// The root directory that Jest should scan for tests and modules within
// rootDir: null,
// A list of paths to directories that Jest should use to search for files in
// roots: [
// "<rootDir>"
// ],
// Allows you to use a custom runner instead of Jest's default test runner
// runner: "jest-runner",
// The paths to modules that run some code to configure or set up the testing environment before each test
setupFiles: ['<rootDir>/tests/unit/register-context.js'],
// A list of paths to modules that run some code to configure or set up the testing framework before each test
// setupFilesAfterEnv: [],
// A list of paths to snapshot serializer modules Jest should use for snapshot testing
// snapshotSerializers: [],
// The test environment that will be used for testing
// Options that will be passed to the testEnvironment
// testEnvironmentOptions: {},
// Adds a location field to test results
// testLocationInResults: false,
// The glob patterns Jest uses to detect test files
// testMatch: [
// "**/__tests__/**/*.[jt]s?(x)",
// "**/?(*.)+(spec|test).[tj]s?(x)"
// ],
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
// testPathIgnorePatterns: [
// "\\\\node_modules\\\\"
// ],
// The regexp pattern or array of patterns that Jest uses to detect test files
// testRegex: [],
// This option allows the use of a custom results processor
// testResultsProcessor: null,
// This option allows use of a custom test runner
// testRunner: "jasmine2",
// This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
// testURL: "http://localhost",
// Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
// timers: "real",
// A map from regular expressions to paths to transformers
// transform: null,
// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
// transformIgnorePatterns: [
// "\\\\node_modules\\\\"
// ],
// An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
// unmockedModulePathPatterns: undefined,
// Indicates whether each individual test should be reported during the run
// verbose: null,
// An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
// watchPathIgnorePatterns: [],
// Whether to use watchman for file crawling
// watchman: true,
testEnvironment: 'node',
preset: '@vue/cli-plugin-unit-jest',
};
This diff is collapsed.
......@@ -9,7 +9,7 @@
"serve-debug": "vite --debug",
"build": "vite build",
"preview": "vite preview --host 0.0.0.0 --port 8080",
"test": "jest",
"test": "vitest",
"lint": "eslint src",
"lint:fix": "eslint src --fix",
"extract-authors": "node src/node/extractAuthors.js",
......@@ -17,7 +17,6 @@
"full-build": "vite build && build-storybook",
"storybook": "start-storybook -p 6006 --loglevel warn",
"storybook-debug": "start-storybook -p 6006 --loglevel silly",
"test:debug": "node --inspect-brk=9229 ./node_modules/.bin/jest --no-cache --runInBand",
"build-storybook": "build-storybook"
},
"dependencies": {
......@@ -80,9 +79,9 @@
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"eslint-plugin-storybook": "^0.6.1",
"eslint-plugin-vitest-globals": "^1.2.0",
"eslint-plugin-vue": "^9.2.0",
"eslint-plugin-vuetify": "^1.1.0",
"jest": "^24.9.0",
"prettier": "^1.16.4",
"prism-react-renderer": "^0.1.7",
"prismjs": "^1.27.0",
......@@ -92,6 +91,7 @@
"vite-plugin-cesium": "^1.2.19",
"vite-plugin-eslint": "^1.7.0",
"vite-plugin-static-copy": "^0.9.0",
"vitest": "^0.24.4",
"vuetify-loader": "^1.9.2"
},
"browserslist": [
......
import { it, describe, expect } from 'vitest';
import {
createAuthors,
extractAuthorsMap,
getFullAuthorsFromDataset,
} from '@/factories/authorFactory';
import packagelist from '@/../public/testdata/packagelist.json';
import packagelist from '@/../stories/testdata/packagelist.json';
// const metadatasContent = {};
// packagelist.result.forEach((entry) => {
......@@ -58,7 +60,7 @@ describe('authorFactory - extractAuthorsMap', () => {
const author = authorMap[authorFullName];
// console.log('authorFullName: ' + authorFullName + ' fullName: ' + author.fullName + ' firstName: ' + author.firstName + ' lastName: ' + author.lastName);
expect(author.firstName).toBeDefined();
expect(author.lastName).toBeDefined();
expect(author.datasetCount).toBeGreaterThanOrEqual(1);
......@@ -88,7 +90,7 @@ describe('authorFactory - getFullAuthorsFromDataset', () => {
for (let i = 0; i < fullAuthors.length; i++) {
const author = fullAuthors[i];
expect(author.firstName).toBeDefined();
expect(author.lastName).toBeDefined();
expect(author.datasetCount).toBeGreaterThanOrEqual(1);
......
import { it, describe, expect } from 'vitest';
import {
getConfigFiles,
getConfigUrls,
......@@ -10,12 +12,12 @@ describe('chartFactory - getConfigFiles()', () => {
it('with testResources', () => {
const resources = dataset.resources;
expect(resources).not.toBeNull();
const configs = getConfigFiles(resources);
getConfigUrls(configs);
expect(resources[0].hideFromResourceList).toBeTruthy();
expect(resources[1].hideFromResourceList).toBeTruthy();
// expect(resources[0].hideFromResourceList).toBeTruthy();
// expect(resources[1].hideFromResourceList).toBeTruthy();
});
});
import { it, describe, expect } from 'vitest';
import {
getWebpImagePathWithFallback,
} from '@/factories/enhancementsFactory';
......@@ -43,5 +45,5 @@ describe('enhancementsFactory - getWebpImagePathWithFallback', () => {
const webpRelative = getWebpImagePathWithFallback(imagePathWithExt, true);
expect(webpRelative).toBe(expectedImagePathWithExt);
});
});
// noinspection DuplicatedCode
import { it, describe, expect } from 'vitest';
import {
getBackendJSON,
......
import { it, describe, expect } from 'vitest';
import {
createHeader,
createBody,
......@@ -14,8 +16,8 @@ import {
} from '@/factories/metaDataFactory';
import packagelist from '@/../public/testdata/packagelist.json';
import categoryCards from '@/store/categoryCards';
import packagelist from '@/../stories/testdata/packagelist.json';
// const metadatasContent = {};
// packagelist.result.forEach((entry) => {
......
import { it, describe, expect } from 'vitest';
import {
createTag,
countTags,
......@@ -25,7 +27,7 @@ it('metadataFilterMethods Tag - creation - defaults', () => {
it('metadataFilterMethods Tag - creation - options tag overload', () => {
const existingTag = {
name: 'dude', enabled: false, color: '#ffffff', count: 5,
name: 'dude', enabled: false, color: '#ffffff', count: 5,
};
const tag = createTag(existingTag.name, { tag: existingTag });
expect(tag.name).toBe(existingTag.name);
......@@ -61,7 +63,7 @@ function getMockDatasets(two = false, three = false, four = false) {
if (four) {
return [{ tags: tags1 }, { tags: tags2 }, { tags: tags1 }, { tags: tags2 }];
}
return [{ tags: tags1 }];
}
......
import { it, describe, expect } from 'vitest';
import {
getModeData,
getTagsMergedWithExtras,
......
import { it, describe, expect } from 'vitest';
import {
successMessage,
errorMessage,
......
import { it, describe, expect } from 'vitest';
import packagelist from '@/../public/testdata/packagelist.json';
import projectJSON from '@/../public/testdata/projects.json';
import {
enhanceSubprojectsFromExtras,
enhanceProjectDatasets,
} from '@/factories/projectsDataFactory';
import packagelist from '@/../stories/testdata/packagelist.json';
import projectJSON from '@/../stories/testdata/projects.json';
const metadatasContent = {};
packagelist.result.forEach((entry) => {
......
import registerRequireContextHook from 'babel-plugin-require-context-hook/register';
registerRequireContextHook();
import { it, describe, expect } from 'vitest';
import {
getPreviewStrategy,
} from '@/factories/strategyFactory';
......@@ -7,14 +9,14 @@ import {
describe('PreviewStrategies - getPreviewStrategy()', () => {
it('empty', () => {
const strategy = getPreviewStrategy();
expect(strategy).toBeNull();
});
it('text file extension .txt', () => {
const strategy = getPreviewStrategy('txt');
expect(strategy).toBeDefined();
......@@ -25,7 +27,7 @@ describe('PreviewStrategies - getPreviewStrategy()', () => {
});
it('markdown file extension .md', () => {
const strategy = getPreviewStrategy('md');
expect(strategy).toBeDefined();
......@@ -36,10 +38,10 @@ describe('PreviewStrategies - getPreviewStrategy()', () => {
});
it('unkown file extension .xyz', () => {
const strategy = getPreviewStrategy(['xyz']);
expect(strategy).toBeNull();
});
});
});
import { it, describe, expect } from 'vitest';
import {
getResearchUnitDatasets,
renderMarkdown,
......@@ -43,7 +45,7 @@ describe('stringFactory - renderMarkdown', () => {
expect(markOut.includes(hrTag)).toBeTruthy();
expect(markOut.includes(aTag)).toBeTruthy();
});
});
describe('stringFactory - stripMarkdown', () => {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment