-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import { expect, test, vi } from 'vitest'; | ||
import { ApplicationManager } from './applicationManager'; | ||
import { RecipeStatusRegistry } from '../registries/RecipeStatusRegistry'; | ||
Check failure on line 3 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / windows-2022
Check failure on line 3 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / ubuntu-22.04
|
||
import { ExtensionContext } from '@podman-desktop/api'; | ||
Check failure on line 4 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / windows-2022
Check failure on line 4 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / ubuntu-22.04
|
||
import { GitManager } from './gitManager'; | ||
Check failure on line 5 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / windows-2022
Check failure on line 5 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / ubuntu-22.04
|
||
import os from 'os'; | ||
import fs, { Dirent } from 'fs'; | ||
Check failure on line 7 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / windows-2022
Check failure on line 7 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / ubuntu-22.04
|
||
import path from 'path'; | ||
|
||
test('appUserDirectory should be under home directory', () => { | ||
vi.spyOn(os, 'homedir').mockReturnValue('/home/user'); | ||
const manager = new ApplicationManager({} as GitManager, {} as RecipeStatusRegistry, {} as ExtensionContext); | ||
expect(manager.appUserDirectory).toMatch(/^\/home\/user/); | ||
}); | ||
|
||
test('getLocalModels should return models in local directory', () => { | ||
vi.spyOn(os, 'homedir').mockReturnValue('/home/user'); | ||
vi.spyOn(fs, 'readdirSync').mockImplementation((dir: string): any => { | ||
Check failure on line 18 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / windows-2022
Check failure on line 18 in packages/backend/src/managers/applicationManager.spec.ts GitHub Actions / linter, formatters and unit tests / ubuntu-22.04
|
||
if (dir.endsWith('model-id-1') || dir.endsWith('model-id-2')) { | ||
const base = path.basename(dir); | ||
return [base + '-model']; | ||
} else { | ||
return [ | ||
{ | ||
isDirectory: () => true, | ||
path: '/home/user/appstudio-dir', | ||
name: 'model-id-1', | ||
}, | ||
{ | ||
isDirectory: () => true, | ||
path: '/home/user/appstudio-dir', | ||
name: 'model-id-2', | ||
}, | ||
{ | ||
isDirectory: () => false, | ||
path: '/home/user/appstudio-dir', | ||
name: 'other-file-should-be-ignored.txt', | ||
}, | ||
] as Dirent[]; | ||
} | ||
}); | ||
const manager = new ApplicationManager({} as GitManager, {} as RecipeStatusRegistry, {} as ExtensionContext); | ||
const models = manager.getLocalModels(); | ||
expect(models).toEqual([ | ||
{ | ||
id: 'model-id-1', | ||
file: 'model-id-1-model', | ||
}, | ||
{ | ||
id: 'model-id-2', | ||
file: 'model-id-2-model', | ||
}, | ||
]); | ||
}); |