Skip to content

Commit a4b8036

Browse files
committed
Fix test for NTFS. Use path.resolve() and __test/tmp/*
1 parent 6ebf37e commit a4b8036

8 files changed

+28
-19
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ node_modules/
22
dist/
33
ignore/
44
coverage/
5+
/__test__/tmp/**/*
6+
!/__test__/tmp/.gitkeep

__test__/fileRequest.test.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import FileRequest from '../src/fileRequest'
22
import { promises as fs } from 'fs'
3+
import path from 'path'
4+
import testDir from './testDir'
35

46
// Initialize Directory
5-
const entryDir: string = '/tmp/gimonfu/fileRequest.test.ts/entry';
6-
(async () => await fs.rmdir(entryDir, {recursive: true}));
7+
const entryDir: string = path.resolve(testDir, 'tmp', 'gimonfu', 'fileRequest.test.ts', 'entry');
8+
(async () => await fs.rm(entryDir, {recursive: true, force: true}));
79
(async () => await fs.mkdir(entryDir, {recursive: true}));
810

911
const fileRequest = new FileRequest(entryDir)
@@ -33,25 +35,25 @@ Bye~
3335

3436
test('customUrl2filePath', () => {
3537
const filePath = fileRequest.customUrl2filePath(article)
36-
expect(filePath).toBe('/tmp/gimonfu/fileRequest.test.ts/entry/2020/05/12/today-blog.md')
38+
expect(filePath).toBe(path.resolve(testDir, 'tmp', 'gimonfu', 'fileRequest.test.ts', 'entry', '2020', '05', '12', 'today-blog.md'))
3739
});
3840

3941
test('filePath2customUrl', async () => {
40-
const filePath = '/tmp/gimonfu/fileRequest.test.ts/entry/hoge/fuga.md'
42+
const filePath = path.resolve(testDir, 'tmp', 'gimonfu', 'fileRequest.test.ts', 'entry', 'hoge', 'fuga.md')
4143
const customUrl = await (fileRequest as any).filePath2customUrl(filePath)
4244
expect(customUrl).toBe('hoge/fuga')
4345
})
4446

4547
test('(invalid) filePath2customUrl', () => {
46-
const filePath = '/out-of-entry-dir/tmp/gimonfu/fileRequest.test.ts/entry/hoge/fuga.md'
48+
const filePath = path.resolve(testDir, 'out-of-entry-dir', 'tmp', 'gimonfu', 'fileRequest.test.ts', 'entry', 'hoge', 'fuga.md')
4749
expect(
4850
(fileRequest as any).filePath2customUrl(filePath)
49-
).rejects.toThrowError('Base directory /tmp/gimonfu/fileRequest.test.ts/entry does not contain markdown file path /out-of-entry-dir/tmp/gimonfu/fileRequest.test.ts/entry/hoge/fuga.md') //toMatch('does not contain markdown file path')
51+
).rejects.toThrowError(`Base directory ${entryDir} does not contain markdown file path ${filePath}`) //toMatch('does not contain markdown file path')
5052
})
5153

5254
test('write/read', async () => {
5355
// articleオブジェクトをファイルに一度writeしてのちにreadしたとき、内容が一致する
5456
await fileRequest.write(article)
55-
const readArticle = await fileRequest.read('/tmp/gimonfu/fileRequest.test.ts/entry/2020/05/12/today-blog.md', {})
57+
const readArticle = await fileRequest.read(path.resolve(testDir, 'tmp', 'gimonfu', 'fileRequest.test.ts', 'entry', '2020', '05', '12', 'today-blog.md'), {})
5658
expect(readArticle).toEqual(article)
5759
})

__test__/loadConfig.test.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
import loadConfig from '../src/loadConfig'
22
import { promises as fs } from 'fs'
3+
import path from 'path'
4+
import testDir from './testDir'
35

46
test('loadConfig', async () => {
5-
await fs.rmdir('/tmp/gimonfu/loadConfig.test.ts', { recursive: true })
6-
await fs.mkdir('/tmp/gimonfu/loadConfig.test.ts/entry/2020/05/12', { recursive: true })
7+
await fs.rm(path.resolve(testDir, 'tmp', 'gimonfu', 'loadConfig.test.ts'), { recursive: true, force: true })
8+
await fs.mkdir(path.resolve(testDir, 'tmp', 'gimonfu', 'loadConfig.test.ts', 'entry', '2020', '05', '12'), { recursive: true })
79

810
await fs.writeFile(
9-
'/tmp/gimonfu/loadConfig.test.ts/.gimonfu.json',
11+
path.resolve(testDir, 'tmp', 'gimonfu', 'loadConfig.test.ts', '.gimonfu.json'),
1012
'{"user_id":"uid", "blog_id": "example.hatenablog.com", "api_key": "api-key-string"}'
1113
)
1214

1315
// 実行時のカレントディレクトリをモック
1416
const spy = jest.spyOn(process, 'cwd')
15-
spy.mockReturnValue('/tmp/gimonfu/loadConfig.test.ts/entry/2020/05/12')
17+
spy.mockReturnValue(path.resolve(testDir, 'tmp', 'gimonfu', 'loadConfig.test.ts', 'entry', '2020', '05', '12'))
1618

1719
expect( await loadConfig() ).toEqual({
1820
user_id: "uid",
1921
blog_id: "example.hatenablog.com",
2022
api_key: "api-key-string",
21-
baseDir: "/tmp/gimonfu/loadConfig.test.ts"
23+
baseDir: path.resolve(testDir, 'tmp', 'gimonfu', 'loadConfig.test.ts')
2224
})
2325
})
2426

__test__/pull.test.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import pull from '../src/pull'
22
import { promises as fs } from 'fs'
33
import path from 'path'
4+
import testDir from './testDir'
45

56
// TODO: 全てdownloadするとき以外の test case も追加する。
67
// TODO: ファイルを書き換えたらスキップされるか
78
// TODO: ファイルを書き換えてmtimeを古くしたら上書きされるか
89

9-
const entryDir: string = '/tmp/gimonfu/pull.test.ts/entry';
10+
const entryDir: string = path.resolve(testDir, 'tmp', 'gimonfu', 'pull.test.ts', 'entry');
1011
beforeEach( async () => {
11-
await fs.rmdir(entryDir, {recursive: true})
12+
await fs.rm(entryDir, {recursive: true, force: true})
1213
await fs.mkdir(entryDir, {recursive: true})
1314
})
1415

1516
jest.mock('../src/loadConfig', () => () => ({
1617
user_id: 'user',
1718
blog_id: 'blogId',
1819
api_key: '',
19-
baseDir: '/tmp/gimonfu/pull.test.ts'
20+
baseDir: path.resolve(testDir, 'tmp', 'gimonfu', 'pull.test.ts')
2021
}))
2122

2223
// Suppress console.log

__test__/push.test.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ import pull from '../src/pull'
22
import push from '../src/push'
33
import { promises as fs } from 'fs'
44
import path from 'path'
5+
import testDir from './testDir'
56

67
// TODO: 新規ファイルをpostすることを確認
78
// TODO: ファイルを書き換えたらputされることを確認
89
// TODO: ファイルを書き換えてmtimeを古くしたらスキップされることを確認
910

10-
const entryDir: string = '/tmp/gimonfu/push.test.ts/entry';
11+
const entryDir: string = path.resolve(testDir, 'tmp',' gimonfu', 'push.test.ts', 'entry');
1112

1213
beforeEach( async () => {
13-
await fs.rmdir(entryDir, {recursive: true});
14+
await fs.rm(entryDir, {recursive: true, force: true});
1415
await fs.mkdir(entryDir, {recursive: true});
1516
})
1617

@@ -21,7 +22,7 @@ jest.mock('../src/loadConfig', () => () => ({
2122
user_id: 'user',
2223
blog_id: 'blogId',
2324
api_key: '',
24-
baseDir: '/tmp/gimonfu/push.test.ts'
25+
baseDir: path.resolve(testDir, 'tmp', 'gimonfu', 'push.test.ts')
2526
}))
2627

2728
jest.mock('request-promise-native', () => ( (req: any) => {

__test__/testDir.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default __dirname

__test__/tmp/.gitkeep

Whitespace-only changes.

jest.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module.exports = {
44
// "<rootDir>/src"
55
// ],
66
"testMatch": [
7-
"**/__test__/**/*.+(ts|tsx|js)",
7+
"**/__test__/**/*.test.+(ts|tsx|js)",
88
// "**/?(*.)+(spec|test).+(ts|tsx|js)"
99
],
1010
"transform": {

0 commit comments

Comments
 (0)