dazscript-framework 1.0.40 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -36,11 +36,39 @@ vi.stubGlobal('DzDir', FakeDir)
|
|
|
36
36
|
import { saveToFile } from './file-helper'
|
|
37
37
|
|
|
38
38
|
describe('saveToFile', () => {
|
|
39
|
-
beforeEach(() =>
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
vi.clearAllMocks()
|
|
41
|
+
open.mockReturnValue(false)
|
|
42
|
+
write.mockReturnValue(-1)
|
|
43
|
+
})
|
|
40
44
|
|
|
41
45
|
it('fails without writing when the file cannot be opened', () => {
|
|
42
46
|
expect(saveToFile('C:/temp/settings.json', '{}')).toBe(false)
|
|
43
47
|
expect(open).toHaveBeenCalledWith(FakeFile.WriteOnly)
|
|
44
48
|
expect(write).not.toHaveBeenCalled()
|
|
45
49
|
})
|
|
50
|
+
|
|
51
|
+
it('fails when writing reports an error', () => {
|
|
52
|
+
open.mockReturnValue(true)
|
|
53
|
+
|
|
54
|
+
expect(saveToFile('C:/temp/settings.json', '{}')).toBe(false)
|
|
55
|
+
expect(write).toHaveBeenCalledWith('{}')
|
|
56
|
+
expect(close).toHaveBeenCalledOnce()
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
it('fails when writing stores no bytes', () => {
|
|
60
|
+
open.mockReturnValue(true)
|
|
61
|
+
write.mockReturnValue(0)
|
|
62
|
+
|
|
63
|
+
expect(saveToFile('C:/temp/settings.json', '{}')).toBe(false)
|
|
64
|
+
expect(close).toHaveBeenCalledOnce()
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
it('succeeds when the file opens and writes', () => {
|
|
68
|
+
open.mockReturnValue(true)
|
|
69
|
+
write.mockReturnValue(2)
|
|
70
|
+
|
|
71
|
+
expect(saveToFile('C:/temp/settings.json', '{}')).toBe(true)
|
|
72
|
+
expect(close).toHaveBeenCalledOnce()
|
|
73
|
+
})
|
|
46
74
|
})
|
|
@@ -32,22 +32,26 @@ export const readFromFile = <T>(filePath: string, cache: boolean = false): T | n
|
|
|
32
32
|
* @returns
|
|
33
33
|
*/
|
|
34
34
|
export const saveToFile = (filePath: string, content: string): boolean => {
|
|
35
|
+
let fileInfo: DzFileInfo | null = null
|
|
36
|
+
let file: DzFile | null = null
|
|
37
|
+
let opened = false
|
|
35
38
|
try {
|
|
36
39
|
if (!filePath || !content) return false
|
|
37
|
-
|
|
40
|
+
fileInfo = new DzFileInfo(filePath)
|
|
38
41
|
let path = fileInfo.absolutePath()
|
|
39
42
|
var dzDir = new DzDir(path)
|
|
40
43
|
dzDir.mkpath(path)
|
|
41
|
-
|
|
42
|
-
file.open(DzFile.WriteOnly)
|
|
43
|
-
|
|
44
|
-
file.
|
|
45
|
-
fileInfo.deleteLater()
|
|
46
|
-
file.deleteLater()
|
|
47
|
-
return true
|
|
44
|
+
file = new DzFile(`${filePath}`)
|
|
45
|
+
opened = file.open(DzFile.WriteOnly)
|
|
46
|
+
if (!opened) return false
|
|
47
|
+
return file.write(content) > 0
|
|
48
48
|
} catch (error) {
|
|
49
49
|
log.error(`Error while saving file ${filePath}`)
|
|
50
50
|
return false
|
|
51
|
+
} finally {
|
|
52
|
+
if (opened) file?.close()
|
|
53
|
+
fileInfo?.deleteLater()
|
|
54
|
+
file?.deleteLater()
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
|