From 370dd26745310ab72f739ec8292dcbaa798dcbfc Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 29 Sep 2014 14:45:19 +0800 Subject: [PATCH] spec: asar: fs.lstatSync --- spec/asar-spec.coffee | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/spec/asar-spec.coffee b/spec/asar-spec.coffee index 5ac58aeed3..ba421d92c7 100644 --- a/spec/asar-spec.coffee +++ b/spec/asar-spec.coffee @@ -54,3 +54,46 @@ describe 'asar package', -> fs.readFile p, (err, content) -> assert.equal err.code, 'ENOENT' done() + + describe 'fs.lstatSync', -> + it 'returns information of a normal file', -> + for file in ['file1', 'file2', 'file3', path.join('dir1', 'file1'), path.join('link2', 'file1')] + p = path.join fixtures, 'asar', 'a.asar', file + stats = fs.lstatSync p + assert.equal stats.isFile(), true + assert.equal stats.isDirectory(), false + assert.equal stats.isSymbolicLink(), false + assert.equal stats.size, 6 + + it 'returns information of a normal directory', -> + for file in ['dir1', 'dir2', 'dir3'] + p = path.join fixtures, 'asar', 'a.asar', file + stats = fs.lstatSync p + assert.equal stats.isFile(), false + assert.equal stats.isDirectory(), true + assert.equal stats.isSymbolicLink(), false + assert.equal stats.size, 0 + + it 'returns information of a linked file', -> + for file in ['link1', path.join('dir1', 'link1'), path.join('link2', 'link2')] + p = path.join fixtures, 'asar', 'a.asar', file + stats = fs.lstatSync p + assert.equal stats.isFile(), false + assert.equal stats.isDirectory(), false + assert.equal stats.isSymbolicLink(), true + assert.equal stats.size, 0 + + it 'returns information of a linked directory', -> + for file in ['link2', path.join('dir1', 'link2'), path.join('link2', 'link2')] + p = path.join fixtures, 'asar', 'a.asar', file + stats = fs.lstatSync p + assert.equal stats.isFile(), false + assert.equal stats.isDirectory(), false + assert.equal stats.isSymbolicLink(), true + assert.equal stats.size, 0 + + it 'throws ENOENT error when can not find a file', -> + for file in ['file4', 'file5', path.join('dir1', 'file4')] + p = path.join fixtures, 'asar', 'a.asar', file + throws = -> fs.lstatSync p + assert.throws throws, /ENOENT/