| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
- import * as util from '../util'
- import * as fileSystemStore from './fileSystemStore'
- import { getFunctionsArtifactStore } from './index'
- vi.mock('../util', () => ({
- assertSelfHosted: vi.fn(),
- }))
- vi.mock('./fileSystemStore', () => ({
- FileSystemFunctionsArtifactStore: vi.fn(),
- }))
- describe('api/self-hosted/functions/index', () => {
- let originalEdgeFunctionsFolder: string | undefined
- beforeEach(() => {
- originalEdgeFunctionsFolder = process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER
- vi.resetAllMocks()
- })
- afterEach(() => {
- if (originalEdgeFunctionsFolder !== undefined) {
- process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER = originalEdgeFunctionsFolder
- } else {
- delete process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER
- }
- })
- describe('getFunctionsArtifactStore', () => {
- it('should call assertSelfHosted', () => {
- process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER = '/tmp/functions'
- getFunctionsArtifactStore()
- expect(util.assertSelfHosted).toHaveBeenCalled()
- })
- it('should throw error if EDGE_FUNCTIONS_MANAGEMENT_FOLDER is not set', () => {
- delete process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER
- expect(() => getFunctionsArtifactStore()).toThrow(
- 'EDGE_FUNCTIONS_MANAGEMENT_FOLDER is required'
- )
- })
- it('should create FileSystemFunctionsArtifactStore with correct path', () => {
- process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER = '/var/lib/functions'
- getFunctionsArtifactStore()
- expect(fileSystemStore.FileSystemFunctionsArtifactStore).toHaveBeenCalledWith(
- '/var/lib/functions'
- )
- })
- it('should return FileSystemFunctionsArtifactStore instance', () => {
- const mockInstance = {
- folderPath: '/tmp/test',
- getFunctions: vi.fn(),
- getFunctionBySlug: vi.fn(),
- getFileEntriesBySlug: vi.fn(),
- }
- vi.mocked(fileSystemStore.FileSystemFunctionsArtifactStore).mockImplementation(function () {
- return mockInstance as any
- })
- process.env.EDGE_FUNCTIONS_MANAGEMENT_FOLDER = '/tmp/test'
- const result = getFunctionsArtifactStore()
- expect(result).toBe(mockInstance)
- })
- })
- })
|