Skip to content

Commit

Permalink
test: improve tests for folderTree
Browse files Browse the repository at this point in the history
  • Loading branch information
mortalYoung committed Oct 28, 2021
1 parent 3e4701f commit 2b0a1f7
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/services/workbench/__tests__/folderTreeService.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { container } from 'tsyringe';
import {
FileTypes,
IFolderTreeNodeProps,
TreeNodeModel,
} from 'mo/model/workbench/explorer/folderTree';
import { expectFnCalled, expectLoggerErrorToBeCalled } from '@test/utils';

Expand All @@ -12,6 +13,7 @@ import {
FolderTreeService,
} from '../explorer/folderTreeService';
import { FolderTreeEvent } from 'mo/model/workbench/explorer/folderTree';
import { randomId } from 'mo/common/utils';

const TEST_ID = 'test-id';

Expand Down Expand Up @@ -135,6 +137,53 @@ describe('Test StatusBarService', () => {
expect(folderTreeService.get(mockTreeData.id)?.name).toBe(TEST_ID);
});

test('Should insert a file or a folder in a sorted way', () => {
const mockRootTree = new TreeNodeModel({
id: randomId(),
name: 'molecule_temp',
fileType: FileTypes.RootFolder,
});
folderTreeService.add(mockRootTree);
const mockFolder = new TreeNodeModel({
id: randomId(),
name: 'mock_folder',
fileType: FileTypes.Folder,
isLeaf: false,
});
folderTreeService.add(mockFolder, mockRootTree.id);
let rootFolder = folderTreeService.get(mockRootTree.id)!;

expect(rootFolder.children).toHaveLength(1);

const anotherMockFolder = new TreeNodeModel({
id: randomId(),
name: 'another_mock_folder',
fileType: FileTypes.Folder,
isLeaf: false,
});
folderTreeService.add(anotherMockFolder, mockRootTree.id);
rootFolder = folderTreeService.get(mockRootTree.id)!;

expect(rootFolder.children).toHaveLength(2);
expect(rootFolder.children).toEqual([anotherMockFolder, mockFolder]);

const mockFile = new TreeNodeModel({
id: randomId(),
name: 'mock_file',
fileType: FileTypes.File,
isLeaf: true,
});
folderTreeService.add(mockFile, mockRootTree.id);
rootFolder = folderTreeService.get(mockRootTree.id)!;

expect(rootFolder.children).toHaveLength(3);
expect(rootFolder.children).toEqual([
anotherMockFolder,
mockFolder,
mockFile,
]);
});

test('Should NOT add root folder when there is a root folder', () => {
const mockRootTree: IFolderTreeNodeProps = {
id: '0',
Expand Down

0 comments on commit 2b0a1f7

Please sign in to comment.