Skip to content

Commit

Permalink
replace util.promisify(fs.xyz) with fs.promises.xyz
Browse files Browse the repository at this point in the history
  • Loading branch information
BuZZ-T committed Aug 13, 2022
1 parent e3edf7f commit 949b8bf
Show file tree
Hide file tree
Showing 20 changed files with 498 additions and 18,701 deletions.
10 changes: 2 additions & 8 deletions download/download.api.int.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
* @group int/api/downloadChromium
*/

import { existsSync, writeFile as fsWriteFile, unlink as fsUnlink } from 'fs'
import { existsSync } from 'fs'
import { writeFile, unlink } from 'fs/promises'
/* eslint-disable-next-line import/no-namespace */
import * as mockFs from 'mock-fs'
/* eslint-disable-next-line import/no-namespace */
import * as fetch from 'node-fetch'
import { join as pathJoin, resolve } from 'path'
import { MaybeMocked } from 'ts-jest/dist/utils/testing'
import { mocked } from 'ts-jest/utils'
import { promisify } from 'util'

import { ComparableVersion } from '../commons/ComparableVersion'
import { mockNodeFetch, chromeZipStream, getJestTmpFolder } from '../test/int.utils'
Expand All @@ -33,9 +33,6 @@ describe('[int] download API', () => {
let promptsMock: MaybeMocked<typeof prompts>
let nodeFetchMock: MaybeMocked<typeof fetch>

let writeFile: typeof fsWriteFile.__promisify__
let unlink: typeof fsUnlink.__promisify__

beforeAll(async () => {
promptsMock = mocked(prompts)

Expand All @@ -47,9 +44,6 @@ describe('[int] download API', () => {
'./node_modules': mockFs.load(resolve(__dirname, '../node_modules')),
[`/tmp/${jestFolder}`]: mockFs.load(resolve(`/tmp/${jestFolder}`)),
})

writeFile = promisify(fsWriteFile)
unlink = promisify(fsUnlink)
})

beforeEach(async () => {
Expand Down
12 changes: 2 additions & 10 deletions download/download.int.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
* @group int/use-case/downloadChromium
*/

import { existsSync, readFile as fsReadFile, writeFile as fsWriteFile, unlink as fsUnlink } from 'fs'
import { existsSync } from 'fs'
import { readFile, writeFile, unlink } from 'fs/promises'
/* eslint-disable-next-line import/no-namespace */
import * as mockFs from 'mock-fs'
/* eslint-disable-next-line import/no-namespace */
import * as fetch from 'node-fetch'
import { join as pathJoin, resolve } from 'path'
import { MaybeMocked } from 'ts-jest/dist/utils/testing'
import { mocked } from 'ts-jest/utils'
import { promisify } from 'util'

import { MappedVersion } from '../commons/MappedVersion'
import type { IListStore } from '../interfaces/store.interfaces'
Expand All @@ -37,10 +37,6 @@ describe('[int] download chromium', () => {
let promptsMock: MaybeMocked<typeof prompts>
let nodeFetchMock: MaybeMocked<typeof fetch>

let readFile: typeof fsReadFile.__promisify__
let writeFile: typeof fsWriteFile.__promisify__
let unlink: typeof fsUnlink.__promisify__

beforeAll(async () => {
promptsMock = mocked(prompts)

Expand All @@ -52,10 +48,6 @@ describe('[int] download chromium', () => {
'./node_modules': mockFs.load(resolve(__dirname, '../node_modules')),
[`/tmp/${jestFolder}`]: mockFs.load(resolve(`/tmp/${jestFolder}`)),
})

readFile = promisify(fsReadFile)
writeFile = promisify(fsWriteFile)
unlink = promisify(fsUnlink)
})

beforeEach(async () => {
Expand Down
68 changes: 14 additions & 54 deletions download/download.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
* @group unit/file/download
*/

import { existsSync, mkdir, createWriteStream, stat, rmdir, unlink, Stats } from 'fs'
import { existsSync, createWriteStream, Stats } from 'fs'
import { mkdir, stat, rmdir, unlink }from 'fs/promises'
import { Response as NodeFetchResponse } from 'node-fetch'
import type { MaybeMocked, MaybeMockedDeep } from 'ts-jest/dist/utils/testing'
import { mocked } from 'ts-jest/utils'
Expand All @@ -19,7 +20,7 @@ import { progress, ProgressBar } from '../log/progress'
import { spinner, Spinner } from '../log/spinner'
import { loadStore } from '../store/loadStore'
import { Store } from '../store/Store'
import { createChromeFullConfig, createStore, createGetChromeDownloadUrlReturn, MkdirWithOptions, StatsWithoutOptions, createChromeSingleConfig } from '../test/test.utils'
import { createChromeFullConfig, createStore, createGetChromeDownloadUrlReturn, createChromeSingleConfig } from '../test/test.utils'
import { getChromeDownloadUrl, loadVersions, mapVersions } from '../versions'
import { downloadChromium } from './download'

Expand All @@ -31,6 +32,7 @@ const Progress = require('node-fetch-progress')
const progressOnMock = jest.fn()

jest.mock('fs')
jest.mock('fs/promises')
jest.mock('node-fetch-progress')
jest.mock('extract-zip')

Expand Down Expand Up @@ -61,8 +63,8 @@ describe('download', () => {

let existsSyncMock: MaybeMocked<typeof existsSync>
let createWriteStreamMock: MaybeMockedDeep<typeof createWriteStream>
let mkdirMock: MaybeMocked<MkdirWithOptions>
let statMock: MaybeMocked<StatsWithoutOptions>
let mkdirMock: MaybeMocked<typeof mkdir>
let statMock: MaybeMocked<typeof stat>
let rmdirMock: MaybeMocked<typeof rmdir>
let unlinkMock: MaybeMocked<typeof unlink>

Expand All @@ -89,8 +91,8 @@ describe('download', () => {

existsSyncMock = mocked(existsSync)
createWriteStreamMock = mocked(createWriteStream)
mkdirMock = mocked(mkdir as MkdirWithOptions)
statMock = mocked(stat as StatsWithoutOptions)
mkdirMock = mocked(mkdir)
statMock = mocked(stat)
rmdirMock = mocked(rmdir)
unlinkMock = mocked(unlink)

Expand Down Expand Up @@ -167,10 +169,6 @@ describe('download', () => {
fetchChromeZipFileMock.mockResolvedValue(zipFileResource)
existsSyncMock.mockReturnValue(false)

mkdirMock.mockImplementation((path, options, callback) => {
callback(null)
})

// Act
const config = createChromeFullConfig({
autoUnzip: false,
Expand Down Expand Up @@ -232,10 +230,6 @@ describe('download', () => {
fetchChromeZipFileMock.mockResolvedValue(zipFileResource)
existsSyncMock.mockReturnValue(false)

mkdirMock.mockImplementation((path, options, callback) => {
callback(null)
})

// Act
const config = createChromeFullConfig({
autoUnzip: false,
Expand Down Expand Up @@ -478,7 +472,7 @@ describe('download', () => {
expect(spinnerMock.update).toHaveBeenCalledTimes(0)

expect(unlinkMock).toHaveBeenCalledTimes(1)
expect(unlinkMock).toHaveBeenCalledWith('chrome-filenameOS-x64-11.12.13.14.zip', expect.any(Function))
expect(unlinkMock).toHaveBeenCalledWith('chrome-filenameOS-x64-11.12.13.14.zip')

expect(logger.error).toHaveBeenCalledTimes(0)
})
Expand Down Expand Up @@ -603,10 +597,8 @@ describe('download', () => {

fetchChromeZipFileMock.mockResolvedValue(zipFileResource)

unlinkMock.mockImplementation(() => {
throw new Error('unlink-error')
})

unlinkMock.mockRejectedValue(new Error('unlink-error'))

// Act
const config = createChromeFullConfig({
autoUnzip: true,
Expand Down Expand Up @@ -758,15 +750,7 @@ describe('download', () => {

processExitSpy.mockImplementation(() => undefined as never)

statMock.mockImplementation((path, callback) => {
callback(null, { isDirectory: () => true } as Stats)
})
rmdirMock.mockImplementation((path, options, callback) => {
callback(null)
})
unlinkMock.mockImplementation((path, callback) => {
callback(null)
})
statMock.mockResolvedValue({ isDirectory: () => true } as Stats)

fetchChromeZipFileMock.mockResolvedValue(zipFileResource)

Expand Down Expand Up @@ -795,15 +779,7 @@ describe('download', () => {

processExitSpy.mockImplementation(() => undefined as never)

statMock.mockImplementation((path, callback) => {
callback(null, { isDirectory: () => false, isFile: () => true } as Stats)
})
rmdirMock.mockImplementation((path, options, callback) => {
callback(null)
})
unlinkMock.mockImplementation((path, callback) => {
callback(null)
})
statMock.mockResolvedValue({ isDirectory: () => false, isFile: () => true } as Stats)

fetchChromeZipFileMock.mockResolvedValue(zipFileResource)

Expand Down Expand Up @@ -832,15 +808,7 @@ describe('download', () => {

processExitSpy.mockImplementation(() => undefined as never)

statMock.mockImplementation((path, callback) => {
callback(null, { isDirectory: () => false, isFile: () => false } as Stats)
})
rmdirMock.mockImplementation((path, options, callback) => {
callback(null)
})
unlinkMock.mockImplementation((path, callback) => {
callback(null)
})
statMock.mockResolvedValue({ isDirectory: () => false, isFile: () => false } as Stats)

fetchChromeZipFileMock.mockResolvedValue(zipFileResource)

Expand Down Expand Up @@ -871,10 +839,6 @@ describe('download', () => {
fetchChromeZipFileMock.mockResolvedValue(zipFileResource)
existsSyncMock.mockReturnValue(false)

mkdirMock.mockImplementation((path, options, callback) => {
callback(null)
})

// Act
const config = createChromeFullConfig({
autoUnzip: false,
Expand All @@ -894,10 +858,6 @@ describe('download', () => {
fetchChromeZipFileMock.mockResolvedValue(zipFileResource)
existsSyncMock.mockReturnValue(false)

mkdirMock.mockImplementation((path, options, callback) => {
callback(null)
})

// Act
const config = createChromeFullConfig({
list: true
Expand Down
9 changes: 2 additions & 7 deletions download/download.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { existsSync, mkdir as fsMkdir, createWriteStream, stat as fsStat, rmdir as fsRmdir, unlink as fsUnlink } from 'fs'
import { createWriteStream, existsSync } from 'fs'
import { mkdir, stat, rmdir, unlink } from 'fs/promises'
import { join as pathJoin } from 'path'
import { promisify } from 'util'

import { fetchChromeZipFile } from '../api'
import { DEFAULT_FULL_CONFIG, DEFAULT_SINGLE_CONFIG } from '../commons/constants'
Expand All @@ -21,11 +21,6 @@ const extract = require('extract-zip')
const Progress = require('node-fetch-progress')
/* eslint-enable @typescript-eslint/no-var-requires */

const mkdir = promisify(fsMkdir)
const stat = promisify(fsStat)
const rmdir = promisify(fsRmdir)
const unlink = promisify(fsUnlink)

function registerSigIntHandler(path: string): void {
process.on('SIGINT', () => {
return stat(path)
Expand Down
Loading

0 comments on commit 949b8bf

Please sign in to comment.