mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-09 16:16:41 +08:00
chore(core): type checking for unit tests (#28529)
Issue number: N/A --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Type checking inside of the Stencil unit tests have been disabled for a long time. This has resulted in a difficult developer experience and numerous issues (both types and implementation) within our unit tests. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Type checking is now enabled for all Stencil unit tests - Tests have been updated to resolve type errors and implementation errors - Many `as any` casts were introduced, as many legacy tests test invalid configurations of functions that require it (for example passing `undefined` to an argument that cannot be `undefined`). ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change, please describe the impact and migration path for existing applications below. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> To test this PR you can checkout the branch locally. Install dependencies in the `/core` directory to make sure you are on at least `@stencil/core@4.7.2`. Opening either a `.spec.ts` or `.spec.tsx` file, validate that your IDE detects types and can provide auto completions for jest global types. If you desire, you can provide an invalid type and try building the project - you will observe the build will fail due to the invalid type.
This commit is contained in:
@ -1,6 +1,5 @@
|
||||
import { newSpecPage } from '@stencil/core/testing';
|
||||
|
||||
import { Config } from '../../../global/config';
|
||||
import type { ComponentProps } from '../../../interface';
|
||||
import { Nav } from '../nav';
|
||||
import type { NavOptions } from '../nav-interface';
|
||||
@ -197,7 +196,6 @@ describe('NavController', () => {
|
||||
.insert(-1, null as any, null, null, trnsDone)
|
||||
.then(() => {
|
||||
fail('it should not succeed');
|
||||
done();
|
||||
})
|
||||
.catch((err: Error) => {
|
||||
const hasCompleted = false;
|
||||
@ -252,7 +250,6 @@ describe('NavController', () => {
|
||||
.pop(null, trnsDone)
|
||||
.then(() => {
|
||||
fail('it should not succeed');
|
||||
done();
|
||||
})
|
||||
.catch((err: any) => {
|
||||
const hasCompleted = false;
|
||||
@ -819,15 +816,10 @@ describe('NavController', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
trnsDone = jest.fn();
|
||||
const config = new Config();
|
||||
config.reset({ animated: false });
|
||||
const page = await newSpecPage({
|
||||
components: [Nav],
|
||||
html: `<ion-nav></ion-nav>`,
|
||||
autoApplyChanges: true,
|
||||
context: {
|
||||
config,
|
||||
},
|
||||
});
|
||||
nav = page.rootInstance;
|
||||
});
|
||||
@ -848,7 +840,7 @@ describe('NavController', () => {
|
||||
pause: jest.fn(),
|
||||
cancel: jest.fn(),
|
||||
onfinish: undefined,
|
||||
};
|
||||
} as any;
|
||||
|
||||
animation.play = () => {
|
||||
if (animation.onfinish) {
|
||||
|
||||
Reference in New Issue
Block a user