|
1 | 1 | 'use strict'; |
2 | 2 |
|
3 | 3 | var path = require('path'); |
| 4 | +var os = require('os'); |
4 | 5 |
|
5 | 6 | var expect = require('expect'); |
6 | 7 |
|
@@ -61,4 +62,27 @@ describe('replace-ext', function() { |
61 | 62 | done(); |
62 | 63 | }); |
63 | 64 |
|
| 65 | + it('Should preserve the first dot of relative dir name.', function(done) { |
| 66 | + if (os.platform() === 'win32') { |
| 67 | + expect(replaceExt('a/b/c.js', '.ts')).toEqual('a\\b\\c.ts'); |
| 68 | + expect(replaceExt('./a/b/c.js', '.ts')).toEqual('.\\a\\b\\c.ts'); |
| 69 | + expect(replaceExt('../a/b/c.js', '.ts')).toEqual('..\\a\\b\\c.ts'); |
| 70 | + expect(replaceExt('/a/b/c.js', '.ts')).toEqual('\\a\\b\\c.ts'); |
| 71 | + |
| 72 | + expect(replaceExt('C:/a/b/c.js', '.ts')).toEqual('C:\\a\\b\\c.ts'); |
| 73 | + |
| 74 | + expect(replaceExt('a\\b\\c.js', '.ts')).toEqual('a\\b\\c.ts'); |
| 75 | + expect(replaceExt('.\\a\\b\\c.js', '.ts')).toEqual('.\\a\\b\\c.ts'); |
| 76 | + expect(replaceExt('..\\a\\b\\c.js', '.ts')).toEqual('..\\a\\b\\c.ts'); |
| 77 | + expect(replaceExt('\\a\\b\\c.js', '.ts')).toEqual('\\a\\b\\c.ts'); |
| 78 | + |
| 79 | + expect(replaceExt('C:\\a\\b\\c.js', '.ts')).toEqual('C:\\a\\b\\c.ts'); |
| 80 | + } else { |
| 81 | + expect(replaceExt('a/b/c.js', '.ts')).toEqual('a/b/c.ts'); |
| 82 | + expect(replaceExt('./a/b/c.js', '.ts')).toEqual('./a/b/c.ts'); |
| 83 | + expect(replaceExt('../a/b/c.js', '.ts')).toEqual('../a/b/c.ts'); |
| 84 | + expect(replaceExt('/a/b/c.js', '.ts')).toEqual('/a/b/c.ts'); |
| 85 | + } |
| 86 | + done(); |
| 87 | + }); |
64 | 88 | }); |
0 commit comments