Files
privacy.sexy/tests/unit/shared/TestCases/SingletonTests.ts
undergroundwires a721e82a4f Bump TypeScript to 5.3 with verbatimModuleSyntax
This commit upgrades TypeScript to the latest version 5.3 and introduces
`verbatimModuleSyntax` in line with the official Vue guide
recommendatinos (vuejs/docs#2592).

By enforcing `import type` for type-only imports, this commit improves
code clarity and supports tooling optimization, ensuring imports are
only bundled when necessary for runtime.

Changes:

- Bump TypeScript to 5.3.3 across the project.
- Adjust import statements to utilize `import type` where applicable,
  promoting cleaner and more efficient code.
2024-02-27 04:20:22 +01:00

26 lines
693 B
TypeScript

import { it, expect } from 'vitest';
import type { Constructible } from '@/TypeHelpers';
interface ISingletonTestData<T> {
readonly getter: () => T;
readonly expectedType?: Constructible<T>;
}
export function itIsSingleton<T>(test: ISingletonTestData<T>): void {
if (test.expectedType !== undefined) {
it('gets the expected type', () => {
// act
const instance = test.getter();
// assert
expect(instance).to.be.instanceOf(test.expectedType);
});
}
it('multiple calls get the same instance', () => {
// act
const instance1 = test.getter();
const instance2 = test.getter();
// assert
expect(instance1).to.equal(instance2);
});
}