Git Product home page Git Product logo

Comments (6)

kdagnan avatar kdagnan commented on May 23, 2024

I am also experiencing this error on Ember 3.28 (development mode & tests) with Ember-intl 6.1.2. It seems to occur when using a template helper if the service hasn't been injected anywhere else yet. Injecting @service intl into my application route seemed to fix it, but doesn't help tests. Lots of failing tests.

This is a very similar error to what you'd receive from updating a @Tracked variable (used in the template) in a constructor() of a glimmer component.

from ember-intl.

ijlee2 avatar ijlee2 commented on May 23, 2024

To confirm, did you follow the migration guide in https://ember-intl.github.io/ember-intl/docs/guide/migration-5-0-to-6-1#missing-setupintl-results-in-a-runtime-error?

from ember-intl.

Gaurav0 avatar Gaurav0 commented on May 23, 2024

@ijlee2 Nope. I would not expect to need to follow a migration / upgrading guide when creating an app for the first time with the latest version. This probably needs to be in the README.

from ember-intl.

ijlee2 avatar ijlee2 commented on May 23, 2024

For this addon, I don't think the README is a good place, as there is a dedicated documentation site. https://ember-intl.github.io/ember-intl/versions/v6.1.2/docs/guide/testing shows the syntax for rendering tests. I'll go ahead with closing the issue.

from ember-intl.

kdagnan avatar kdagnan commented on May 23, 2024

If anyone wants to avoid having to add this hook to every test, this instance-initializer worked for me to solve tests. Might be slightly slower than choosing specific tests to add the setupIntl(hooks) but way easier and don't need to always remember to do this when writing new tests:

export default {
  initialize: function (application) {
    const env = application.resolveRegistration('config:environment');
    const intl = application.lookup('service:intl');
   
    if(env === 'test'){
      intl.setLocale('en-us');
    }
  }
};

from ember-intl.

ijlee2 avatar ijlee2 commented on May 23, 2024

@kdagnan I recommend customizing setupRenderingTest() instead of an instance initializer. The best way is to call setupIntl() only when needed, to make the dependencies of a test clear and to avoid deprecated patterns such as an implicit service injection.

https://github.com/ember-cli/ember-cli/blob/v5.4.0/blueprints/app/files/tests/helpers/index.ts#L27-L35

from ember-intl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.