mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
refactor: replace "folder" with "directory" across file handling components and tests
This commit is contained in:
1 parent
7e50c8e06c
commit
cdd22634e0
18 files changed
+150
-104
No files matched your search
@@ -2,14 +2,14 @@ import { basename } from './utils.js'
|
||||
|
||||
export interface FileObject {
|
||||
path: string
|
||||
type: string
|
||||
type: 'file' | 'directory'
|
||||
discovered: boolean
|
||||
}
|
||||
|
||||
export default class File implements FileObject {
|
||||
path: string
|
||||
name: string
|
||||
type: string
|
||||
type: 'file' | 'directory'
|
||||
discovered: boolean
|
||||
|
||||
constructor(obj: FileObject) {
|
||||
@@ -20,7 +20,7 @@ export default class File implements FileObject {
|
||||
}
|
||||
|
||||
isDirectory() {
|
||||
return this.type === 'folder'
|
||||
return this.type === 'directory'
|
||||
}
|
||||
|
||||
contains(file: FileObject) {
|
||||
|
||||
@@ -20,7 +20,7 @@ export default class FileGraph extends FileNode {
|
||||
|
||||
remove(files: FileObject[]) {
|
||||
// Logic to remove a file node from the graph
|
||||
// If the file node is a folder, also remove all children
|
||||
// If the file node is a directory, also remove all children
|
||||
// If the file node doesn't exist, throw an error
|
||||
|
||||
files.forEach((file) => {
|
||||
|
||||
@@ -45,7 +45,7 @@ export default class FileNode extends File {
|
||||
} else if (makeParents) {
|
||||
const parent = new FileNode({
|
||||
path: parentPath,
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: false,
|
||||
children: [file],
|
||||
})
|
||||
|
||||
@@ -4,7 +4,7 @@ import File from '../src/file.js'
|
||||
describe('File', () => {
|
||||
let file: File
|
||||
beforeEach(() => {
|
||||
file = new File({ path: '/home/user', type: 'folder', discovered: true })
|
||||
file = new File({ path: '/home/user', type: 'directory', discovered: true })
|
||||
})
|
||||
|
||||
const filesToCompare = [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { describe, test, expect } from '@jest/globals'
|
||||
import FileGraph from '../src/fileGraph.js'
|
||||
import FileNode from '../src/fileNode.js'
|
||||
import { FileObject } from '../src/file.js'
|
||||
|
||||
describe('FileGraph', () => {
|
||||
let root: FileNode
|
||||
@@ -8,7 +9,7 @@ describe('FileGraph', () => {
|
||||
beforeEach(() => {
|
||||
root = new FileNode({
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
})
|
||||
})
|
||||
@@ -16,7 +17,7 @@ describe('FileGraph', () => {
|
||||
test('add files to graph', () => {
|
||||
const fileGraph = new FileGraph(root)
|
||||
|
||||
const filesToAdd = [
|
||||
const filesToAdd: FileObject[] = [
|
||||
{
|
||||
path: '/home/user/file1.txt',
|
||||
type: 'file',
|
||||
@@ -24,7 +25,7 @@ describe('FileGraph', () => {
|
||||
},
|
||||
{
|
||||
path: '/home/user/folder1',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
]
|
||||
@@ -41,12 +42,12 @@ describe('FileGraph', () => {
|
||||
const filesToAdd = [
|
||||
{
|
||||
path: '/home/user/folder1',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
path: '/home/user/folder2',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
@@ -61,22 +62,22 @@ describe('FileGraph', () => {
|
||||
},
|
||||
]
|
||||
|
||||
fileGraph.add(filesToAdd)
|
||||
fileGraph.add(filesToAdd as FileObject[])
|
||||
|
||||
const filesToRemove = [
|
||||
{
|
||||
path: '/home/user/folder1/file1.txt',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
path: '/home/user/folder2',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
]
|
||||
|
||||
fileGraph.remove(filesToRemove)
|
||||
fileGraph.remove(filesToRemove as FileObject[])
|
||||
|
||||
expect(fileGraph.children[0].children[0].children.length).toBe(1)
|
||||
expect(fileGraph.children[0].children[0].children[0].name).toBe('folder1')
|
||||
@@ -90,7 +91,7 @@ describe('FileGraph', () => {
|
||||
const discoverFiles = [
|
||||
{
|
||||
path: '/home/user/folder1',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
@@ -110,7 +111,7 @@ describe('FileGraph', () => {
|
||||
},
|
||||
]
|
||||
|
||||
fileGraph.discover(discoverFiles)
|
||||
fileGraph.discover(discoverFiles as FileObject[])
|
||||
expect(fileGraph.children[0].children[0].children[0].children.length).toBe(
|
||||
3
|
||||
)
|
||||
@@ -122,12 +123,12 @@ describe('FileGraph', () => {
|
||||
const filesToAdd = [
|
||||
{
|
||||
path: '/home/user/folder1',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
path: '/home/user/folder2',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
@@ -142,12 +143,12 @@ describe('FileGraph', () => {
|
||||
},
|
||||
]
|
||||
|
||||
fileGraph.add(filesToAdd)
|
||||
fileGraph.add(filesToAdd as FileObject[])
|
||||
|
||||
const newFiles = [
|
||||
{
|
||||
path: '/home/user/folder1',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
@@ -167,7 +168,7 @@ describe('FileGraph', () => {
|
||||
},
|
||||
]
|
||||
|
||||
fileGraph.discover(newFiles)
|
||||
fileGraph.discover(newFiles as FileObject[])
|
||||
|
||||
expect(fileGraph.children[0].children[0].children.length).toBe(2)
|
||||
expect(fileGraph.children[0].children[0].children[0].children.length).toBe(
|
||||
|
||||
@@ -43,7 +43,7 @@ describe('FileNode', () => {
|
||||
rootNode = new FileNode({
|
||||
path: '/home/rudeus',
|
||||
name: 'rudeus',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
})
|
||||
})
|
||||
@@ -51,7 +51,7 @@ describe('FileNode', () => {
|
||||
test('should throw error when adding duplicate item', () => {
|
||||
const child = {
|
||||
path: '/home/rudeus/test',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ describe('FileNode', () => {
|
||||
const child = {
|
||||
path: '/home/rudeus/alphabet/test',
|
||||
name: 'test',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ describe('FileNode', () => {
|
||||
{
|
||||
path: '/home/rudeus/test',
|
||||
name: 'test',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
},
|
||||
{
|
||||
@@ -131,21 +131,21 @@ describe('FileNode', () => {
|
||||
test('merge-subtree', () => {
|
||||
const root = {
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
const files1 = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/d', type: 'file', discovered: true },
|
||||
{ path: '/b/c/f', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
const files2 = [
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/e', type: 'file', discovered: true },
|
||||
{ path: '/b/c/g', type: 'file', discovered: true },
|
||||
]
|
||||
@@ -153,8 +153,8 @@ describe('FileNode', () => {
|
||||
const expected = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/e', type: 'file', discovered: true },
|
||||
{ path: '/b/c/g', type: 'file', discovered: true },
|
||||
]
|
||||
@@ -168,29 +168,29 @@ describe('FileNode', () => {
|
||||
// The original tree should keep the children that are not in the node to merge
|
||||
const root = {
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
const files1 = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/d', type: 'file', discovered: true },
|
||||
{ path: '/b/c/f', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
const files2 = [
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/e', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
const expected = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/e', type: 'file', discovered: true },
|
||||
{ path: '/b/c/f', type: 'file', discovered: true },
|
||||
]
|
||||
@@ -201,19 +201,19 @@ describe('FileNode', () => {
|
||||
test('merge-hidden', () => {
|
||||
const root = {
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
const files1 = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/.b', type: 'file', discovered: false },
|
||||
{ path: '/c', type: 'folder', discovered: true },
|
||||
{ path: '/c', type: 'directory', discovered: true },
|
||||
{ path: '/c/.d', type: 'file', discovered: false },
|
||||
]
|
||||
|
||||
const files2 = [
|
||||
{ path: '/c', type: 'folder', discovered: true },
|
||||
{ path: '/c', type: 'directory', discovered: true },
|
||||
{ path: '/c/.d', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
@@ -221,7 +221,7 @@ describe('FileNode', () => {
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/.b', type: 'file', discovered: false },
|
||||
{ path: '/c', type: 'folder', discovered: true },
|
||||
{ path: '/c', type: 'directory', discovered: true },
|
||||
{ path: '/c/.d', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
@@ -231,24 +231,24 @@ describe('FileNode', () => {
|
||||
test('remove-child', () => {
|
||||
const root = {
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
}
|
||||
const files = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b/c', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/c', type: 'directory', discovered: true },
|
||||
{ path: '/b/d', type: 'file', discovered: true },
|
||||
{ path: '/b/c/f', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
const fileToRemove = { path: '/b/c', type: 'folder', discovered: true }
|
||||
const fileToRemove = { path: '/b/c', type: 'directory', discovered: true }
|
||||
|
||||
const expected = [
|
||||
root,
|
||||
{ path: '/a', type: 'file', discovered: true },
|
||||
{ path: '/b', type: 'folder', discovered: true },
|
||||
{ path: '/b', type: 'directory', discovered: true },
|
||||
{ path: '/b/d', type: 'file', discovered: true },
|
||||
]
|
||||
|
||||
@@ -259,7 +259,7 @@ describe('FileNode', () => {
|
||||
test('load nested fileNode', () => {
|
||||
const data = {
|
||||
path: '/',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
children: [
|
||||
{
|
||||
@@ -269,12 +269,12 @@ test('load nested fileNode', () => {
|
||||
},
|
||||
{
|
||||
path: '/b',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
children: [
|
||||
{
|
||||
path: '/b/c',
|
||||
type: 'folder',
|
||||
type: 'directory',
|
||||
discovered: true,
|
||||
children: [
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user