set up jest for your typescript project and how to import txt files in your unit tests

 

Getting Started

These instructions will get you setup to use ts-jest in your project. For more detailed documentation, please check online documentation.

using npmusing yarn
Prerequisitesnpm i -D jest typescriptyarn add --dev jest typescript
Installingnpm i -D ts-jest @types/jestyarn add --dev ts-jest @types/jest
Creating confignpx ts-jest config:inityarn ts-jest config:init
Running testsnpm t or npx jestyarn test or yarn jest


to import txt file as string, via jest-raw-loader

/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
"transform": {
"\\.txt$": "jest-raw-loader"
}
};

or follow https://nextjs.org/docs/testing if you are using next.js


https://www.npmjs.com/package/jest-raw-loader

https://github.com/kulshekhar/ts-jest

https://jestjs.io/zh-Hans/docs/getting-started

https://jestjs.io/docs/configuration#transform-objectstring-pathtotransformer--pathtotransformer-object




Import txt files as string into your next.js App

 import file from './xxx.txt'

Webpack 5 has 'Asset Modules' to allow you to import assets without configuring loaders now.

Next.js use Webpack 5 internally, so we can use 'source assets' to import txt files as strings.

Two steps to let you be able to import a txt file as a string.

custom Webpack config for next.js


config.module.rules.push({
test: /\.txt$/i,
type: 'asset/source'
})

declare txt as a module for typescript

Wildcard module declarations can be used to cover these cases.

declare module '*.txt' {
const content: string;
export default content;
}

example

import t1 from './1.txt'
console.log(t1)

output

event - compiled successfully
离开罪之路的人蒙祝福,
他不去随从恶人的计谋,
他不会站在罪人的道路上,
也不去坐好讥笑人的座位,
他喜爱的是耶和华律法,
昼夜默诵的也是他律法。

The full commit to enabling import txt files in your next.js app


references

fixed: embedded-redis: Unable to run on macOS Sonoma

Issue you might see below error while trying to run embedded-redis for your testing on your macOS after you upgrade to Sonoma. java.la...