Skip to content

Commit ccd34be

Browse files
committed
fix: refactor unit tests
1 parent 1f539bb commit ccd34be

File tree

2 files changed

+6
-96
lines changed

2 files changed

+6
-96
lines changed

scripts/create-package/utils.test.ts

Lines changed: 1 addition & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -152,92 +152,6 @@ describe('create-package/utils', () => {
152152
});
153153
});
154154

155-
it('should write the expected files if the directory does not exist', async () => {
156-
const packageData: PackageData = {
157-
name: '@metamask/foo',
158-
description: 'A foo package.',
159-
directoryName: 'foo',
160-
nodeVersions: '>=18.0.0',
161-
currentYear: '2023',
162-
};
163-
164-
const monorepoFileData = {
165-
tsConfig: {
166-
references: [{ path: './packages/bar' }],
167-
},
168-
tsConfigBuild: {
169-
references: [{ path: './packages/bar' }],
170-
},
171-
nodeVersions: '>=18.0.0',
172-
};
173-
174-
const mockError = new Error('Not found') as NodeJS.ErrnoException;
175-
mockError.code = 'ENOENT';
176-
177-
(fs.promises.stat as jest.Mock).mockResolvedValueOnce({
178-
isDirectory: () => false,
179-
});
180-
181-
(fsUtils.readAllFiles as jest.Mock).mockResolvedValueOnce({
182-
'src/index.ts': 'export default 42;',
183-
'src/index.test.ts': 'export default 42;',
184-
'mock1.file':
185-
'CURRENT_YEAR NODE_VERSIONS PACKAGE_NAME PACKAGE_DESCRIPTION PACKAGE_DIRECTORY_NAME',
186-
'mock2.file': 'CURRENT_YEAR NODE_VERSIONS PACKAGE_NAME',
187-
'mock3.file': 'PACKAGE_DESCRIPTION PACKAGE_DIRECTORY_NAME',
188-
});
189-
190-
(prettier.format as jest.Mock).mockImplementation((input) => input);
191-
192-
await finalizeAndWriteData(packageData, monorepoFileData);
193-
194-
// processTemplateFiles and writeFiles
195-
expect(fsUtils.readAllFiles).toHaveBeenCalledTimes(1);
196-
expect(fsUtils.readAllFiles).toHaveBeenCalledWith(
197-
expect.stringMatching(/\/package-template$/u),
198-
);
199-
200-
expect(fsUtils.writeFiles).toHaveBeenCalledTimes(1);
201-
expect(fsUtils.writeFiles).toHaveBeenCalledWith(
202-
expect.stringMatching(/packages\/foo$/u),
203-
{
204-
'src/index.ts': 'export default 42;',
205-
'src/index.test.ts': 'export default 42;',
206-
'mock1.file': '2023 >=18.0.0 @metamask/foo A foo package. foo',
207-
'mock2.file': '2023 >=18.0.0 @metamask/foo',
208-
'mock3.file': 'A foo package. foo',
209-
},
210-
);
211-
212-
// Writing monorepo files
213-
expect(fs.promises.writeFile).toHaveBeenCalledTimes(2);
214-
expect(prettier.format).toHaveBeenCalledTimes(2);
215-
expect(fs.promises.writeFile).toHaveBeenCalledWith(
216-
expect.stringMatching(/tsconfig\.json$/u),
217-
JSON.stringify({
218-
references: [{ path: './packages/bar' }, { path: './packages/foo' }],
219-
}),
220-
);
221-
expect(fs.promises.writeFile).toHaveBeenCalledWith(
222-
expect.stringMatching(/tsconfig\.build\.json$/u),
223-
JSON.stringify({
224-
references: [
225-
{ path: './packages/bar' },
226-
{ path: './packages/foo/tsconfig.build.json' },
227-
],
228-
}),
229-
);
230-
231-
// Postprocessing
232-
expect(execa).toHaveBeenCalledTimes(2);
233-
expect(execa).toHaveBeenCalledWith('yarn', ['install'], {
234-
cwd: expect.any(String),
235-
});
236-
expect(execa).toHaveBeenCalledWith('yarn', ['update-readme-content'], {
237-
cwd: expect.any(String),
238-
});
239-
});
240-
241155
it('throws if the package directory already exists', async () => {
242156
const packageData: PackageData = {
243157
name: '@metamask/foo',
@@ -257,9 +171,7 @@ describe('create-package/utils', () => {
257171
nodeVersions: '20.0.0',
258172
};
259173

260-
(fs.promises.stat as jest.Mock).mockResolvedValueOnce({
261-
isDirectory: () => true,
262-
});
174+
(fs.promises.stat as jest.Mock).mockResolvedValue({});
263175

264176
await expect(
265177
finalizeAndWriteData(packageData, monorepoFileData),

scripts/create-package/utils.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@ const allPlaceholdersRegex = new RegExp(
2222

2323
// Our lint config really hates this, but it works.
2424
// eslint-disable-next-line
25-
const prettierRc = require(path.join(
26-
REPO_ROOT,
27-
'.prettierrc.js',
28-
)) as PrettierOptions;
25+
const prettierRc = require(
26+
path.join(REPO_ROOT, '.prettierrc.js'),
27+
) as PrettierOptions;
2928

3029
/**
3130
* The data necessary to create a new package.
@@ -95,9 +94,8 @@ export async function finalizeAndWriteData(
9594
) {
9695
const packagePath = path.join(PACKAGES_PATH, packageData.directoryName);
9796
try {
98-
if ((await fs.stat(packagePath)).isDirectory()) {
99-
throw new Error(`The package directory already exists: ${packagePath}`);
100-
}
97+
await fs.stat(packagePath);
98+
throw new Error(`The package directory already exists: ${packagePath}`);
10199
} catch (error) {
102100
if ((error as NodeJS.ErrnoException).code !== 'ENOENT') {
103101
throw error;

0 commit comments

Comments
 (0)