Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

typeRoots option in tsconfig.json is not relative #397

Closed
beuted opened this issue Mar 2, 2017 · 12 comments
Closed

typeRoots option in tsconfig.json is not relative #397

beuted opened this issue Mar 2, 2017 · 12 comments

Comments

@beuted
Copy link
Contributor

beuted commented Mar 2, 2017

Here is my configuration inside my Gruntfile

        ts: {
            public : {
                tsconfig: "./public/tsconfig.json"
            },
            server : {
                tsconfig: "./server/tsconfig.json"
            }
        },

Here is server/tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": true,
        "typeRoots": [
            "./node_modules/@types",
            "./server/typings/"
        ],
        "types": [ "node", "socket.io", "seedrandom", "voronoi" ],
        "target": "es5"
    },
    "files": ["../app.ts"]
}

When I run ts:server I've got:

app.ts --sourcemap --removeComments --noImplicitAny --types "node,socket.io,seedrandom,voronoi" --typeRoots "../node_modules/@types,./typings/" --target ES5 --module commonjs

The generated route for app.ts is ./app.ts and not ../app.ts since grunt-ts knows that the app.ts is at the root since the path is relative to server/.

But for "typeRoots" in the generated command line typeRoots have the same path as in the tsconfig.json which is false, it should be:

-typeRoots "./node_modules/@types,./server/typings/"

I would like to have the same mechanism for the "typeRoots" array.

The issue is that, the tsconfig.json being used by IDE, changing the path in the tsconfig.json is breaking static type analysis in them!

I don't know if it's easy to implement I just wanted to ask if you would consider merging such a PR if have a look ?

@nycdotnet
Copy link
Contributor

Thank you for reporting this. I think that you're right - the typeRoots passed on the command-line to tsc should be relative to the Gruntfile, so grunt-ts ought to resolve the difference between the typeRoots values as specified in the tsconfig.json and the Gruntfile first. I think it is not currently doing that.

I would love it if you wanted to submit a PR. That would be really helpful. Please take a look at the instructions on Contributing.md for some help on getting started/debugging.

I think what you'd need to do is edit the sameNameInTSConfigAndGruntTS array inside applyCompilerOptions to remove typeRoots. Please leave a comment that it is handled below (like outFile has).

Then you'd need to map the elements of co.typeRoots to apply the relative mapping, and then set the result.typeRoots to the mapped array value.

You'll want to use path.relative() which is part of Node.js and also relativePathFromGruntfileToTSConfig() which is already implemented in the tsconfig.ts. Feel free to refactor a bit if you want.

Let me know if you have any questions. If you don't want to or aren't able to complete this fix, no worries. I can take care of it. Thanks for the report!!

@beuted
Copy link
Contributor Author

beuted commented Mar 3, 2017

Hey, I've looked a bit at the issue but I can't manage to run tests on what I did, so I tried on MASTER and I've got the same issues:

Running "nodeunit:slow" (nodeunit) task
Testing test.jsFF.....F.......F.FF.F
>> tests - simple
>> Message: Actual did not match expected.  Run this to compare:
>> kdiff3 "test/simple/js/zoo.js" "test/expected/simple/js/zoo.js"
>> Error: 'var__extends=(this&&this.__extends)||function(d,b){for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];function__(){this.constructor=d;}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new__());};varAnimal=(function(){functionAnimal(name){this.name=name;}Animal.prototype.move=function(meters){alert(this.name+"moved"+meters+"m.");};returnAnimal;}());varSnake=(function(_super){__extends(Snake,_super);functionSnake(name){return_super.call(this,name)||this;}Snake.prototype.move=function(){alert("Slithering...");_super.prototype.move.call(this,5);};returnSnake;}(Animal));varHorse=(function(_super){__extends(Horse,_super);functionHorse(name){return_super.call(this,name)||this;}Horse.prototype.move=function(){alert("Galloping...");_super.prototype.move.call(this,45);};returnHorse;}(Animal));varsam=newSnake("SammythePython");vartom=newHorse("TommythePalomino");sam.move();tom.move(34);//#sourceMappingURL=zoo.js.map' == 'var__extends=(this&&this.__extends)||(function(){varextendStatics=Object.setPrototypeOf||({__proto__:[]}instanceofArray&&function(d,b){d.__proto__=b;})||function(d,b){for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];};returnfunction(d,b){extendStatics(d,b);function__(){this.constructor=d;}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new__());};})();varAnimal=(function(){functionAnimal(name){this.name=name;}Animal.prototype.move=function(meters){alert(this.name+"moved"+meters+"m.");};returnAnimal;}());varSnake=(function(_super){__extends(Snake,_super);functionSnake(name){return_super.call(this,name)||this;}Snake.prototype.move=function(){alert("Slithering...");_super.prototype.move.call(this,5);};returnSnake;}(Animal));varHorse=(function(_super){__extends(Horse,_super);functionHorse(name){return_super.call(this,name)||this;}Horse.prototype.move=function(){alert("Galloping...");_super.prototype.move.call(this,45);};returnHorse;}(Animal));varsam=newSnake("SammythePython");vartom=newHorse("TommythePalomino");sam.move();tom.move(34);//#sourceMappingURL=zoo.js.map'
>> kdiff3 "test/simple/js/zoo.js" "test/expected/simple/js/zoo.js"
>>   at testFile (C:\src\dkj\grunt-ts\test\test.js:16:10)
>>   at Object.exports.tests.simple (C:\src\dkj\grunt-ts\test\test.js:50:9)
>>   at Object.exports.tests.setUp (C:\src\dkj\grunt-ts\test\test.js:44:9)
>>   at FSReqWrap.oncomplete (fs.js:123:15)

Maybe this is an issue with a dependency ? I'm on windows 7, npm 4.4.0, node 6.3.1
npm ls gives me this:

$ npm ls
[email protected] c:\src\dkj\grunt-ts
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| |   +-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | | `-- [email protected]
| |   | |   +-- [email protected]
| |   | |   +-- [email protected]
| |   | |   +-- [email protected]
| |   | |   `-- [email protected]
| |   | +-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | | `-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | `-- [email protected]
| |   `-- [email protected]
| |     +-- [email protected]
| |     `-- [email protected]
| +-- [email protected]
| +-- UNMET OPTIONAL DEPENDENCY fsevents@^1.0.0
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| `-- [email protected]
|   +-- [email protected]
|   +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | `-- [email protected]
|   `-- [email protected]
+-- [email protected]
| +-- [email protected]
| `-- [email protected]
|   +-- [email protected]
|   `-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| |   +-- [email protected]
| |   | `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | `-- [email protected]
| |   |   `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | +-- [email protected]
| |   | | `-- [email protected]
| |   | `-- [email protected]
| |   |   +-- [email protected]
| |   |   | `-- [email protected]
| |   |   `-- [email protected]
| |   +-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | | +-- [email protected]
| |   | | `-- [email protected]
| |   | |   `-- [email protected]
| |   | `-- [email protected]
| |   |   +-- [email protected]
| |   |   | +-- [email protected]
| |   |   | | `-- [email protected]
| |   |   | |   `-- [email protected]
| |   |   | `-- [email protected]
| |   |   `-- [email protected]
| |   +-- [email protected]
| |   | +-- [email protected]
| |   | | `-- [email protected]
| |   | |   `-- [email protected]
| |   | `-- [email protected]
| |   `-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| |   `-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| |   +-- [email protected]
| |   `-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| `-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| `-- [email protected]
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| `-- [email protected]
|   +-- [email protected]
|   | `-- [email protected]
|   +-- [email protected]
|   | `-- [email protected]
|   +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | |   +-- [email protected]
|   | |   `-- [email protected]
|   | +-- [email protected]
|   | `-- [email protected]
|   |   `-- [email protected]
|   +-- [email protected]
|   +-- [email protected]
|   `-- [email protected]
+-- [email protected]
| `-- [email protected]
|   `-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | `-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   | `-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   | `-- [email protected]
|     |   +-- [email protected]
|     |   | +-- [email protected]
|     |   | | `-- [email protected]
|     |   | `-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   | `-- [email protected]
|     |   |   +-- [email protected]
|     |   |   `-- [email protected]
|     |   +-- [email protected]
|     |   | +-- [email protected]
|     |   | +-- [email protected]
|     |   | +-- [email protected]
|     |   | `-- [email protected]
|     |   +-- [email protected]
|     |   | +-- [email protected]
|     |   | +-- [email protected]
|     |   | | +-- [email protected]
|     |   | | +-- [email protected]
|     |   | | `-- [email protected]
|     |   | `-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   | `-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   | `-- [email protected]
|     |   |   +-- [email protected]
|     |   |   +-- [email protected]
|     |   |   `-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   +-- [email protected]
|     |   `-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     | `-- [email protected]
|     |   `-- [email protected]
|     |     +-- [email protected]
|     |     `-- [email protected]
|     +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | |   +-- [email protected]
|     | |   +-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | |   `-- [email protected]
|     | |     +-- [email protected]
|     | |     `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | |   +-- [email protected]
|     | | |   `-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | +-- [email protected]
|     | | | | +-- [email protected]
|     | | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | |   `-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | +-- [email protected]
|     | | | | | +-- [email protected]
|     | | | | | +-- [email protected]
|     | | | | | +-- [email protected]
|     | | | | | `-- [email protected]
|     | | | | `-- [email protected]
|     | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | +-- [email protected]
|     | | | `-- [email protected]
|     | | |   `-- [email protected]
|     | | |     `-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | `-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | |   +-- [email protected]
|     | |   | `-- [email protected]
|     | |   +-- [email protected]
|     | |   | `-- [email protected]
|     | |   `-- [email protected]
|     | |     +-- [email protected]
|     | |     +-- [email protected]
|     | |     `-- [email protected]
|     | |       +-- [email protected]
|     | |       +-- [email protected]
|     | |       | +-- [email protected]
|     | |       | | +-- [email protected]
|     | |       | | | `-- [email protected]
|     | |       | | `-- [email protected]
|     | |       | +-- [email protected]
|     | |       | `-- [email protected]
|     | |       `-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | |   +-- [email protected]
|     | | | |   +-- [email protected]
|     | | | |   | `-- [email protected]
|     | | | |   +-- [email protected]
|     | | | |   `-- [email protected]
|     | | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | `-- [email protected]
|     | | `-- [email protected]
|     | |   +-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | |   `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | |   +-- [email protected]
|     | | |   | +-- [email protected]
|     | | |   | | `-- [email protected]
|     | | |   | |   `-- [email protected]
|     | | |   | `-- [email protected]
|     | | |   +-- [email protected]
|     | | |   | +-- [email protected]
|     | | |   | +-- [email protected]
|     | | |   | | `-- [email protected]
|     | | |   | +-- [email protected]
|     | | |   | `-- [email protected]
|     | | |   |   +-- [email protected]
|     | | |   |   | `-- [email protected]
|     | | |   |   `-- [email protected]
|     | | |   |     `-- [email protected]
|     | | |   `-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | `-- [email protected]
|     | | |   `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | | +-- [email protected]
|     | | | | `-- [email protected]
|     | | | +-- [email protected]
|     | | | `-- [email protected]
|     | | |   `-- [email protected]
|     | | +-- [email protected]
|     | | +-- [email protected]
|     | | `-- [email protected]
|     | `-- [email protected]
|     |   `-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     +-- [email protected]
|     | +-- [email protected]
|     | | `-- [email protected]
|     | +-- [email protected]
|     | `-- [email protected]
|     |   `-- [email protected]
|     +-- [email protected]
|     | `-- [email protected]
|     `-- [email protected]
+-- [email protected]
| +-- [email protected]
| | `-- [email protected]
| |   +-- [email protected]
| |   `-- [email protected]
| +-- [email protected]
| `-- [email protected]
|   +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | +-- [email protected]
|   | | +-- [email protected]
|   | | `-- [email protected]
|   | `-- [email protected]
|   |   +-- [email protected]
|   |   `-- [email protected]
|   |     `-- [email protected]
|   +-- [email protected]
|   | `-- [email protected]
|   +-- [email protected]
|   | `-- [email protected]
|   |   `-- [email protected]
|   +-- [email protected]
|   +-- [email protected]
|   `-- [email protected]
+-- [email protected]
+-- [email protected]
| `-- [email protected]
|   `-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| `-- [email protected]
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | `-- [email protected]
| +-- [email protected]
| +-- [email protected]
| `-- [email protected]
|   +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | |   +-- [email protected]
|   | |   `-- [email protected]
|   | |     `-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | |   +-- [email protected]
|   | |   +-- [email protected]
|   | |   +-- [email protected]
|   | |   +-- [email protected]
|   | |   `-- [email protected]
|   | `-- [email protected]
|   |   `-- [email protected]
|   +-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | +-- [email protected]
|   | | `-- [email protected]
|   | `-- [email protected]
|   |   +-- [email protected]
|   |   `-- [email protected]
|   +-- [email protected]
|   +-- [email protected]
|   | `-- [email protected]
|   |   +-- [email protected]
|   |   | +-- [email protected]
|   |   | | `-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | +-- [email protected]
|   |   | `-- [email protected]
|   |   |   `-- [email protected]
|   |   +-- [email protected]
|   |   | `-- [email protected]
|   |   |   +-- [email protected]
|   |   |   +-- [email protected]
|   |   |   `-- [email protected]
|   |   `-- [email protected]
|   +-- [email protected]
|   +-- [email protected]
|   `-- [email protected]
`-- [email protected]

My (untested for the moment) solution is here: https:/beuted/grunt-ts

@nycdotnet
Copy link
Contributor

I'm not sure why the slow tests aren't running properly. The file comparison it's doing generally only changes if the version of TypeScript is different. You seem to have the expected version of TypeScript installed. I did just notice that there is an issue with tslint in the latest code on master when I just did a fresh reclone.

Did you just clone down the repo yesterday?

@nycdotnet
Copy link
Contributor

By the way - your code seems to be mostly correct. The trick is that typeRoots is an array so you have to apply the path.relative to each element rather than the array itself. also note that you still have "out" and "outFile" in there.

Please submit a PR with what you've done already and if you want to fix it, please do so. If you can't get it working, no worries, I'll just modify it.

Thanks for contributing!

@beuted
Copy link
Contributor Author

beuted commented Mar 3, 2017

Yes I just clone the repos this afternoon.

I usually just fix no versions in my projects to avoid these kind of issues but I guess you cannot do that in a public package ppl will depend on (?)

Indeed the code is incorrect I will fix and submit a PR (not before Monday tho')
What's bothering me is that I will not be able to add a test for this change :(
But I'll manually test it on the repo I first had the issue.

Thanks for the quick answers and for the package :)

Cheers.

@nycdotnet
Copy link
Contributor

You should be able to add a test.

Do me a favor - on Monday please copy your code change to a different file and delete your entire grunt-ts repo and reclone it fresh. I just made a change to the file you were working on to support tsconfig extensions which is a new TypeScript 2.2 feature, and I also fixed an issue where the integration tests weren't working right so it's possible you were affected by that. Hopefully totally deleting everything and starting over will clear up any problems because I just tried it from scratch and it seems OK. (I have Node.js 7.5 on Windows 10 but it shouldn't really matter - the integration tests run on Node 0.10, and 4.x+ on Linux and they just all passed with the latest code in Travis.)

There are three kinds of tests supported in grunt-ts. The first is the quick "nodeunit" style tests which are true unit tests. The second is the "command-line-only" tests which basically is a hook that intercepts what the command-line "would be" and then runs a function to validate it. That's the kind you want.

Open the main Gruntfile.js and look for issue_392 - the property testExecute references a function in the test/commandLineAssertions.ts file. You can set up a new item in the Gruntfile and reference a new function and then check that the paths you expect are passed by grunt-ts to TypeScript (it won't actually run the compiler - you're just asserting that the new relative paths you expect are there).

Thanks again for investigating this. Let me know if you need anything else. :-)

@beuted
Copy link
Contributor Author

beuted commented Mar 6, 2017

I've gave it a try here: https:/beuted/grunt-ts
But I've got two issues:

  • I had to add a .gitignore in my test to avoid ignoring issue_397-tsconfig.json and I don't understand where the rule ignoring this file is.
  • I don't manage to regenerate tsconfig.js next to tsconfig.ts, and when I run grunt test I'm pretty sure it is using the old version of tsconfig (evn tho I ran grunt build and even grunt release) because I added logs in the file and I can't see them when running grunt test --verbose

So I can't run the new test I wrote, (my code might be broken, I just can't tell). :(

Any idea ?

@nycdotnet
Copy link
Contributor

What editor are you using? Running grunt build or grunt release should transpile the tsconfig.ts to tsconfig.js, so that sounds odd.

I think this work looks good. Thank you!! Please submit a PR and I'll tweak anything that's necessary and hopefully I'll be able to figure out what is causing your trouble. I really appreciate it!!

@beuted
Copy link
Contributor Author

beuted commented Mar 7, 2017

Done

@nycdotnet
Copy link
Contributor

Fixed via #399

@beuted
Copy link
Contributor Author

beuted commented Mar 8, 2017

So is it possible to have a new release with this feature ? (if not I'll just use the github repo with the sha1)

@nycdotnet
Copy link
Contributor

This is released in grunt-ts v6.0.0-beta.16 on npm. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants