Skip to content

Validate discrepancies in project tests #133

Closed
@mhegazy

Description

@mhegazy

We need to investigate the differences noted in the tests below. Sheetal is currently refactoring these test suites significantly and then we should ensure any differences get appropriate bugs/fixes:

(new test case is prettyname.js from scenario (by eliminating the non digit and non alphabetical characters and making it pascal when joining such things)

tests.push({
                scenario: 'non-relative'
                , projectRoot: 'tests/cases/projects/non-relative'
                , inputFiles: ['consume.ts']
                , collectedFiles: ['consume.ts', 'decl.ts', 'lib/foo/a.ts', 'lib/foo/b.ts', 'lib/bar/a.ts']  //(highlighted file is imported in a.ts but the import isn’t used, so earlier we didn’t generate b.js now we do.

                , outputFiles: ['consume.js', 'decl.js', 'lib/bar/a.js', 'lib/foo/a.js']
                , baselineCheck: true
                , baselineFiles: ['base-consume', 'base-decl', 'lib/bar/base-a', 'lib/foo/base-a']   
                , path: 'cases/projects/non-relative/'
                , skipRun: true
            });

tests.push({
                scenario: 'baseline 2'
                , projectRoot: 'tests/cases/projects/baseline'
                , inputFiles: ['dont_emit.ts']
                , collectedFiles: ['dont_emit.ts', 'decl.ts'] // same as above
                , outputFiles: ['dont_emit.js']
                , baselineCheck: true
                , baselineFiles: ['base-dont-emit']
                , path: 'cases/projects/baseline/'
            });

tests.push({
                scenario: 'nested declare'
                , projectRoot: 'tests/cases/projects/NestedDeclare'
                , inputFiles: ['consume.ts']
                , collectedFiles: ['consume.ts']
                , outputFiles: <string[]>[] // File only with the ambient declares – shouldn’t emit anything -– earlier it didn’t.
                , skipRun: true
            });


  tests.push({
                scenario: 'nested local module - with recursive typecheck'
                , projectRoot: 'tests/cases/projects/NestedLocalModule-WithRecursiveTypecheck'
                , inputFiles: ['test1.ts']
                , collectedFiles: ['test1.ts', 'test2.ts']// test2.ts is not picked up and we don’t see the error below, but we do see error that cant find module.
                , outputFiles: <string[]>[] // test1.js is generated (earlier it wasn’t)
                , skipRun: true
                , negative: true
                , errors: [
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + "tests/cases/projects/NestedLocalModule-WithRecursiveTypecheck/test2.ts") + "(5,5): error TS2136: Import declarations in an internal module cannot reference an external module.",
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + "tests/cases/projects/NestedLocalModule-WithRecursiveTypecheck/test1.ts") + "(3,2): error TS2136: Import declarations in an internal module cannot reference an external module."
                ]
            });


  tests.push({
                scenario: 'nested local module - simple case'
                , projectRoot: 'tests/cases/projects/NestedLocalModule-SimpleCase'
                , inputFiles: ['test1.ts']
                , collectedFiles: ['test1.ts', 'test2.ts']
                , outputFiles: <string[]>[] // Same
                , skipRun: true
                , negative: true
                , errors: [
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + "tests/cases/projects/NestedLocalModule-SimpleCase/test1.ts") + "(2,2): error TS2136: Import declarations in an internal module cannot reference an external module.",
                ]
            });

            tests.push({ // Not sure what this test case is for and if matters, the order of sourcefiles is b.ts and a.js and the files are generated in same order.
                scenario: "module merging ordering 2"
                , projectRoot: 'tests/cases/projects/moduleMergeOrder'
                , inputFiles: ['b.ts', 'a.ts']
                , collectedFiles: ['a.ts', 'b.ts']
                , outputFiles: ['a.js']
                , skipRun: true
            });

    tests.push({
                scenario: "declarations_CascadingImports"
                , projectRoot: 'tests/cases/projects/declarations_CascadingImports'
                , inputFiles: ['useModule.ts']
                , collectedFiles: ['useModule.ts', 'm4.ts'] // Alias resolution error code looks like : declare module "quotedm1" {
    import m4 = require("m4");                     
    export class v {
        public c: m4.d;
    }
}

                , outputFiles: ['m4.js']
                , declareFiles: ['m4.d.ts', 'useModule.d.ts']
                , skipRun: true
            });


            tests.push({
                scenario: "Visibility of type used across modules - 2"
                , projectRoot: 'tests/cases/projects/InvalidReferences'
                , inputFiles: ['main.ts']
                , collectedFiles: ['main.ts']
                , outputFiles: ['main.js']
                , verifyEmitFiles: false
                , skipRun: true
                , negative: true
                , errors: [
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + 'tests/cases/projects/InvalidReferences/main.ts') + '(1,1): error TS5006: A file cannot have a reference to itself.' // The below error is missing
,
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + 'tests/cases/projects/InvalidReferences/main.ts') + '(2,1): error TS5007: Cannot resolve referenced file: \'nonExistingFile1.ts\'.',
                    TypeScript.Environment.absolutePath(Harness.userSpecifiedroot + 'tests/cases/projects/InvalidReferences/main.ts') + '(3,1): error TS5007: Cannot resolve referenced file: \'nonExistingFile2.ts\'.']
            });


tests.push({
                scenario: "outputdir_module_subfolder: specify outputFile"
                , projectRoot: 'tests/cases/projects/outputdir_module_subfolder'
                , inputFiles: ['test.ts']
                , collectedFiles: ['test.ts', 'ref/m1.ts']
                , outputFiles: ['ref/m1.js', 'test.js']  earlier we didn’t emit bin\test.js because other two were modules, but now we have empty bin\test.js
                , declareFiles: ['ref/m1.d.ts', 'test.d.ts'] 
                , verifyEmitFiles: true
                , outputOption: 'bin/test.js'
                , skipRun: true
            });

       tests.push({
                scenario: "outputdir_module_multifolder: specify outputFile"
                , projectRoot: 'tests/cases/projects/outputdir_module_multifolder'
                , inputFiles: ['test.ts']
                , collectedFiles: ['test.ts', 'ref/m1.ts', '../outputdir_module_multifolder_ref/m2.ts']
                , outputOption: 'bin/test.js'
                , outputFiles: ['ref/m1.js', '../outputdir_module_multifolder_ref/m2.js', 'test.js']  same as above
                , declareFiles: ['ref/m1.d.ts', '../outputdir_module_multifolder_ref/m2.d.ts', 'test.d.ts']
                , verifyEmitFiles: true
                , verifyFileNamesOnly: true
                , skipRun: true
            });

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptBy DesignDeprecated - use "Working as Intended" or "Design Limitation" instead

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions