pnpm/lockfile/lockfile-file/test/lockfileName.test.ts

31 lines
1.2 KiB
TypeScript

import { WANTED_LOCKFILE } from '@pnpm/constants'
import { getCurrentBranch } from '@pnpm/git-utils'
import { getWantedLockfileName } from '../lib/lockfileName'
jest.mock('@pnpm/git-utils', () => ({ getCurrentBranch: jest.fn() }))
describe('lockfileName', () => {
afterEach(() => {
(getCurrentBranch as jest.Mock).mockReset()
})
test('returns default lockfile name if useGitBranchLockfile is off', async () => {
await expect(getWantedLockfileName()).resolves.toBe(WANTED_LOCKFILE)
})
test('returns git branch lockfile name', async () => {
(getCurrentBranch as jest.Mock).mockReturnValue('main')
await expect(getWantedLockfileName({ useGitBranchLockfile: true })).resolves.toBe('pnpm-lock.main.yaml')
})
test('returns git branch lockfile name when git branch contains clashes', async () => {
(getCurrentBranch as jest.Mock).mockReturnValue('a/b/c')
await expect(getWantedLockfileName({ useGitBranchLockfile: true })).resolves.toBe('pnpm-lock.a!b!c.yaml')
})
test('returns git branch lockfile name when git branch contains uppercase', async () => {
(getCurrentBranch as jest.Mock).mockReturnValue('aBc')
await expect(getWantedLockfileName({ useGitBranchLockfile: true })).resolves.toBe('pnpm-lock.abc.yaml')
})
})