Open
Description
Steps:
Run this TypeScript test in 3.7.x (https://codecept.io/effects.html#usage-with-typescript says that it should work)
Feature("My");
import { tryTo } from "codeceptjs/effects";
Scenario("test something", async ({ I }) => {
I.amOnPage("https://example.com");
// inside a test
const success = await tryTo(() => {
// These steps may fail but won't stop the test
I.see("Example Domain2");
});
if (!success) {
I.say("The text 'Example Domain2' was not found, but the test continues.");
}
});
with this config (note global plugins are disabled because they are deprecated, see https://codecept.io/effects.html#installation)
import { setHeadlessWhen, setCommonPlugins } from '@codeceptjs/configure';
// turn on headless mode when running with HEADLESS=true environment variable
// export HEADLESS=true && npx codeceptjs run
setHeadlessWhen(process.env.HEADLESS);
// enable all common plugins https://github.com/codeceptjs/configure#setcommonplugins
// setCommonPlugins();
export const config: CodeceptJS.MainConfig = {
tests: './*_test.ts',
output: './output',
helpers: {
Playwright: {
browser: 'chromium',
url: 'http://localhost',
show: true
}
},
include: {
I: './steps_file'
},
name: 'tmp'
}
Expected result:
- The test passes
Actual result:
- Unable to compile TS
mirao@jobr-ubuntu:~/tmp$ npx codeceptjs run My_test.ts --verbose
***************************************
nodeInfo: 20.19.0
osInfo: Linux 6.11 Ubuntu 24.04.2 LTS 24.04.2 LTS (Noble Numbat)
cpuInfo: (16) x64 AMD Ryzen 9 7940HS w/ Radeon 780M Graphics
chromeInfo: 136.0.7103.113
edgeInfo: "N/A"
firefoxInfo: undefined
safariInfo: N/A
playwrightBrowsers: "chromium: 136.0.7103.25, firefox: 137.0, webkit: 18.4"
If you need more detailed info, just run this: npx codeceptjs info
***************************************
TSError: ⨯ Unable to compile TypeScript:
My_test.ts:3:23 - error TS2307: Cannot find module 'codeceptjs/effects' or its corresponding type declarations.
3 import { tryTo } from "codeceptjs/effects";
~~~~~~~~~~~~~~~~~~~~
at createTSError (/home/mirao/tmp/node_modules/ts-node/src/index.ts:859:12)
at reportTSError (/home/mirao/tmp/node_modules/ts-node/src/index.ts:863:19)
at getOutput (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1077:36)
at Object.compile (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1433:41)
at Module.m._compile (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1617:30)
at Module._extensions..js (node:internal/modules/cjs/loader:1613:10)
at Object.require.extensions.<computed> [as .ts] (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:1275:32)
at Function.Module._load (node:internal/modules/cjs/loader:1096:12)
at Module.require (node:internal/modules/cjs/loader:1298:19)
⨯ Unable to compile TypeScript:
My_test.ts:3:23 - error TS2307: Cannot find module 'codeceptjs/effects' or its corresponding type declarations.
3 import { tryTo } from "codeceptjs/effects";
~~~~~~~~~~~~~~~~~~~~
TSError:
at createTSError (/home/mirao/tmp/node_modules/ts-node/src/index.ts:859:12)
at reportTSError (/home/mirao/tmp/node_modules/ts-node/src/index.ts:863:19)
at getOutput (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1077:36)
at Object.compile (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1433:41)
at Module.m._compile (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1617:30)
at Module._extensions..js (node:internal/modules/cjs/loader:1613:10)
at Object.require.extensions.<computed> [as .ts] (/home/mirao/tmp/node_modules/ts-node/src/index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:1275:32)
at Function.Module._load (node:internal/modules/cjs/loader:1096:12)
at Module.require (node:internal/modules/cjs/loader:1298:19)
Woarkound: (helped by GitHub Copilot)
- Create
types/codeceptjs-effects.d.ts
with this content
// Type definitions for codeceptjs/effects
declare module "codeceptjs/effects" {
export function tryTo(fn: () => void | Promise<void>): Promise<boolean>;
}
Used SW:
- CodeceptJS 3.7.3
- Playwright 1.52
Metadata
Metadata
Assignees
Labels
No labels