ember-cli-typescript: Inconsistent builds with addons having files with same names

reproduction repo: https://github.com/lifeart/ts-merging-issue

how to reproduce? yarn; ember test; ember test; ember test or see

WARNING: ts-app has added the class-properties plugin to its build, but ember-cli-babel provides these by default now! You can remove the transforms, or the addon that provided them, such as @ember-decorators/babel-transforms.
WARNING: ts-app has added the class-properties plugin to its build, but ember-cli-babel provides these by default now! You can remove the transforms, or the addon that provided them, such as @ember-decorators/babel-transforms.
Environment: test
cleaning up...
Built project successfully. Stored in "C:\Users\lifeart\Documents\repos\tmp\ts-app\tmp\class-tests_dist-UBMhIWw3.tmp".
ok 1 Chrome 74.0 - [2 ms] - ESLint | app: app/models/meta-model.js
ok 2 Chrome 74.0 - [0 ms] - ESLint | app: app.js
ok 3 Chrome 74.0 - [1 ms] - ESLint | app: resolver.js
ok 4 Chrome 74.0 - [0 ms] - ESLint | app: router.js
ok 5 Chrome 74.0 - [0 ms] - TemplateLint: ts-app/templates/application.hbs
ok 6 Chrome 74.0 - [0 ms] - ESLint | tests: test-helper.js
ok 7 Chrome 74.0 - [108 ms] - Unit | Model | base model: it exists
ok 8 Chrome 74.0 - [25 ms] - Unit | Model | meta model: it exists
ok 9 Chrome 74.0 - [0 ms] - ember-qunit: Ember.onerror validation: Ember.onerror is functioning properly

1..9
# tests 9
# pass  9
# skip  0
# fail  0

# ok
WARNING: ts-app has added the class-properties plugin to its build, but ember-cli-babel provides these by default now! You can remove the transforms, or the addon that provided them, such as @ember-decorators/babel-transforms.
WARNING: ts-app has added the class-properties plugin to its build, but ember-cli-babel provides these by default now! You can remove the transforms, or the addon that provided them, such as @ember-decorators/babel-transforms.
Environment: test
cleaning up...
Built project successfully. Stored in "C:\Users\lifeart\Documents\repos\tmp\ts-app\tmp\class-tests_dist-s6n8AZfw.tmp".
ok 1 Chrome 74.0 - [2 ms] - ESLint | app: app/models/meta-model.js
ok 2 Chrome 74.0 - [0 ms] - ESLint | app: app.js
ok 3 Chrome 74.0 - [0 ms] - ESLint | app: resolver.js
ok 4 Chrome 74.0 - [0 ms] - ESLint | app: router.js
ok 5 Chrome 74.0 - [1 ms] - TemplateLint: ts-app/templates/application.hbs
ok 6 Chrome 74.0 - [0 ms] - ESLint | tests: test-helper.js
ok 7 Chrome 74.0 - [106 ms] - Unit | Model | base model: it exists
not ok 8 Chrome 74.0 - [26 ms] - Unit | Model | meta model: it exists
    ---
        expected: >
            addon-meta-model/baseModel
        stack: >
                at Object.<anonymous> (http://localhost:7357/assets/tests.js:67:14)
                at runTest (http://localhost:7357/assets/test-support.js:5618:30)
                at Test.run (http://localhost:7357/assets/test-support.js:5604:6)
                at http://localhost:7357/assets/test-support.js:5831:12
                at processTaskQueue (http://localhost:7357/assets/test-support.js:5197:24)
                at advanceTaskQueue (http://localhost:7357/assets/test-support.js:5182:4)
        negative: >
            false
        browser log: |
    ...
ok 9 Chrome 74.0 - [0 ms] - ember-qunit: Ember.onerror validation: Ember.onerror is functioning properly

1..9
# tests 9
# pass  8
# skip  0
# fail  1

same tests failing randomly

ember-cli: 3.10.0
node: 10.15.1
os: win32 x64

case:

ts addon, having model, named meta-model, ts app has base-model and meta-model models.

app.base-model extends addon.meta-model
app.meta-model extends app.base-model

So, sometimes (randomly) app.base-model not extends from addon.meta-model and it’s produce inconsistent build

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 22 (4 by maintainers)

Most upvoted comments

FYI: .js/.ts collision detection (warning) has been released in v3.1.3

@chriskrycho is it make sense to search possible static namespace overlaps on ember-cli boot? get all addons, check for exports, check app locals for possible .ts overlaps

@lifeart I’m definitely going to make it a loud and clear note, but there’s only so much we can do—people have to find and read the docs. 🤷‍♂