fix: only count something as a directory if it has children (#4595)
* fix: only count something as a directory if it has children * fix: playwright tests * fix: return 0 if you cant find the projectfolder * fix: remove folder count from e2e tests since it is unused currently --------- Co-authored-by: Tom Pridham <pridham.tom@gmail.com>
This commit is contained in:
@ -45,7 +45,6 @@ test.describe('integrations tests', () => {
|
||||
{
|
||||
title: 'test-sample',
|
||||
fileCount: 1,
|
||||
folderCount: 1,
|
||||
},
|
||||
],
|
||||
sortBy: 'last-modified-desc',
|
||||
@ -233,7 +232,6 @@ test.describe('when using the file tree to', () => {
|
||||
{
|
||||
title: projectName,
|
||||
fileCount: 2,
|
||||
folderCount: 2, // TODO: This is a pre-existing bug, there are no folders within the project
|
||||
},
|
||||
],
|
||||
sortBy: 'last-modified-desc',
|
||||
|
@ -4,7 +4,6 @@ import { expect } from '@playwright/test'
|
||||
interface ProjectCardState {
|
||||
title: string
|
||||
fileCount: number
|
||||
folderCount: number
|
||||
}
|
||||
|
||||
interface HomePageState {
|
||||
@ -61,15 +60,13 @@ export class HomePageFixture {
|
||||
const projectCards = await this.projectCard.all()
|
||||
const projectCardStates: Array<ProjectCardState> = []
|
||||
for (const projectCard of projectCards) {
|
||||
const [title, fileCount, folderCount] = await Promise.all([
|
||||
const [title, fileCount] = await Promise.all([
|
||||
(await projectCard.locator(this.projectCardTitle).textContent()) || '',
|
||||
Number(await projectCard.locator(this.projectCardFile).textContent()),
|
||||
Number(await projectCard.locator(this.projectCardFolder).textContent()),
|
||||
])
|
||||
projectCardStates.push({
|
||||
title: title,
|
||||
fileCount,
|
||||
folderCount,
|
||||
})
|
||||
}
|
||||
return projectCardStates
|
||||
|
@ -46,9 +46,21 @@ describe('desktop utilities', () => {
|
||||
'project-without-kcl-files',
|
||||
'another-valid-project',
|
||||
],
|
||||
'/test/projects/valid-project': ['file1.kcl', 'file2.stp'],
|
||||
'/test/projects/valid-project': [
|
||||
'file1.kcl',
|
||||
'file2.stp',
|
||||
'file3.kcl',
|
||||
'directory1',
|
||||
],
|
||||
'/test/projects/valid-project/directory1': [],
|
||||
'/test/projects/project-without-kcl-files': ['file3.glb'],
|
||||
'/test/projects/another-valid-project': ['file4.kcl'],
|
||||
'/test/projects/another-valid-project': [
|
||||
'file4.kcl',
|
||||
'directory2',
|
||||
'directory3',
|
||||
],
|
||||
'/test/projects/another-valid-project/directory2': [],
|
||||
'/test/projects/another-valid-project/directory3': [],
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
@ -119,6 +131,15 @@ describe('desktop utilities', () => {
|
||||
)
|
||||
})
|
||||
|
||||
it('correctly counts directories and files', async () => {
|
||||
const projects = await listProjects(mockConfig)
|
||||
// Verify that directories and files are counted correctly
|
||||
expect(projects[0].directory_count).toEqual(1)
|
||||
expect(projects[0].kcl_file_count).toEqual(2)
|
||||
expect(projects[1].directory_count).toEqual(2)
|
||||
expect(projects[1].kcl_file_count).toEqual(1)
|
||||
})
|
||||
|
||||
it('handles empty project directory', async () => {
|
||||
// Adjust mockFileSystem to simulate empty directory
|
||||
mockFileSystem['/test/projects'] = []
|
||||
|
@ -307,7 +307,10 @@ const directoryCount = (file: FileEntry) => {
|
||||
let count = 0
|
||||
if (file.children) {
|
||||
for (let entry of file.children) {
|
||||
// We only want to count FileEntries with children, e.g. folders
|
||||
if (entry.children !== null) {
|
||||
count += 1
|
||||
}
|
||||
directoryCount(entry)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user