Files
privacy.sexy/tests/integration/infrastructure/Metadata/Vite/ViteAppMetadata.spec.ts
undergroundwires 75c9b51bf2 Migrate to electron-vite and electron-builder
- Switch from deprecated Vue CLI plugin to `electron-vite` (see
  nklayman/vue-cli-plugin-electron-builder#1982)
- Update main/preload scripts to use `index.cjs` filenames to support
  `"type": "module"`, resolving crash issue (#233). This crash was
  related to Electron not supporting ESM (see electron/asar#249,
  electron/electron#21457).
- This commit completes migration to Vite from Vue CLI (#230).

Structure changes:

- Introduce separate folders for Electron's main and preload processes.
- Move TypeHelpers to `src/` to mark tit as accessible by the rest of
  the code.

Config changes:

- Make `vite.config.ts` reusable by Electron configuration.
- On electron-builder, use `--publish` flag instead of `-p` for clarity.

Tests:

- Add log for preload script loading verification.
- Implement runtime environment sanity checks.
- Enhance logging in `check-desktop-runtime-errors`.
2023-08-24 20:01:53 +02:00

48 lines
1.5 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { ViteAppMetadata } from '@/infrastructure/Metadata/Vite/ViteAppMetadata';
import packageJson from '@/../package.json' assert { type: 'json' };
import { PropertyKeys } from '@/TypeHelpers';
describe('ViteAppMetadata', () => {
describe('populates from package.json', () => {
interface ITestCase {
readonly getActualValue: (sut: ViteAppMetadata) => string;
readonly expected: string;
}
const testCases: { readonly [K in PropertyKeys<ViteAppMetadata>]: ITestCase } = {
name: {
expected: packageJson.name,
getActualValue: (sut) => sut.name,
},
version: {
expected: packageJson.version,
getActualValue: (sut) => sut.version,
},
slogan: {
expected: packageJson.slogan,
getActualValue: (sut) => sut.slogan,
},
repositoryUrl: {
expected: packageJson.repository.url,
getActualValue: (sut) => sut.repositoryUrl,
},
homepageUrl: {
expected: packageJson.homepage,
getActualValue: (sut) => sut.homepageUrl,
},
};
Object.entries(testCases).forEach(([propertyName, { expected, getActualValue }]) => {
it(`should correctly get the value of ${propertyName}`, () => {
// arrange
const sut = new ViteAppMetadata();
// act
const actualValue = getActualValue(sut);
// assert
expect(actualValue).toBe(expected);
});
});
});
});