pnpm

Форк
0
55 строк · 2.2 Кб
1
import fs from 'fs'
2
import path from 'path'
3
import { getFilePathInCafs } from '@pnpm/store.cafs'
4
import { getIntegrity, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
5

6
export interface StoreAssertions {
7
  getPkgIndexFilePath: (pkgName: string, version?: string) => string
8
  cafsHas: (pkgName: string, version?: string) => void
9
  cafsHasNot: (pkgName: string, version?: string) => void
10
  storeHas: (pkgName: string, version?: string) => void
11
  storeHasNot: (pkgName: string, version?: string) => void
12
  resolve: (pkgName: string, version?: string, relativePath?: string) => string
13
}
14

15
export function assertStore (
16
  storePath: string,
17
  encodedRegistryName?: string
18
): StoreAssertions {
19
  // eslint-disable-next-line
20
  const ok = (value: any) => expect(value).toBeTruthy()
21
  // eslint-disable-next-line
22
  const notOk = (value: any) => expect(value).toBeFalsy()
23
  const ern = encodedRegistryName ?? `localhost+${REGISTRY_MOCK_PORT}`
24
  const store = {
25
    getPkgIndexFilePath (pkgName: string, version?: string): string {
26
      const cafsDir = path.join(storePath, 'files')
27
      const integrity = version ? getIntegrity(pkgName, version) : pkgName
28
      return getFilePathInCafs(cafsDir, integrity, 'index')
29
    },
30
    cafsHas (pkgName: string, version?: string): void {
31
      const pathToCheck = store.getPkgIndexFilePath(pkgName, version)
32
      ok(fs.existsSync(pathToCheck))
33
    },
34
    cafsHasNot (pkgName: string, version?: string): void {
35
      const pathToCheck = store.getPkgIndexFilePath(pkgName, version)
36
      notOk(fs.existsSync(pathToCheck))
37
    },
38
    storeHas (pkgName: string, version?: string): void {
39
      const pathToCheck = store.resolve(pkgName, version)
40
      ok(fs.existsSync(pathToCheck))
41
    },
42
    storeHasNot (pkgName: string, version?: string): void {
43
      const pathToCheck = store.resolve(pkgName, version)
44
      notOk(fs.existsSync(pathToCheck))
45
    },
46
    resolve (pkgName: string, version?: string, relativePath?: string): string {
47
      const pkgFolder = version ? path.join(ern, pkgName, version) : pkgName
48
      if (relativePath) {
49
        return path.join(storePath, pkgFolder, relativePath)
50
      }
51
      return path.join(storePath, pkgFolder)
52
    },
53
  }
54
  return store
55
}
56

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.