Skip to content

Commit

Permalink
add some unit tests for applicationManager
Browse files Browse the repository at this point in the history
  • Loading branch information
feloy committed Jan 22, 2024
1 parent 4bec89b commit b3e8634
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions packages/backend/src/managers/applicationManager.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { expect, test, vi } from 'vitest';
import { ApplicationManager } from './applicationManager';
import type { RecipeStatusRegistry } from '../registries/RecipeStatusRegistry';
import type { ExtensionContext } from '@podman-desktop/api';
import type { GitManager } from './gitManager';
import os from 'os';
import fs, { type Dirent } from 'fs';
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');
// eslint-disable-next-line @typescript-eslint/no-explicit-any
vi.spyOn(fs, 'readdirSync').mockImplementation((dir: string): any => {
// TODO(feloy): fix any
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',
},
]);
});

0 comments on commit b3e8634

Please sign in to comment.