miragejs/ember-cli-mirage

Remove autostart

cah-brian-gantzler opened this issue · 7 comments

Is anyone actually using the autostart environment variable? I would assume this starts the server in the tests instead of using setupMirage. I can find it documented and using setupMirage is the preferred way to start the server.

Are we able to remove it since it is not documented? Would be nice to remove an instance-initializer if its not being used.

References:
https://github.com/miragejs/ember-cli-mirage/blob/master/addon/instance-initializers/ember-cli-mirage-autostart.js

@cah-briangantzler doesn't it make server running in development automatically?

No, that is the enabled property https://www.ember-cli-mirage.com/docs/advanced/environment-options#enabled although autostart would have made more sense

In the future I would propose that the enabled property also be deprecated and removed in favor of calling startMirage in the app. It is more explicit, and if your does not import and call startMirage embroider should be able to tree shake mirage out of ember s and have it only avail in ember t. Does embroider treat dev and test differently?

Out of curiosity, I tried ember s and do not see @ember/test-helpers in the browser, given that autostart calls getRfc232TestContext(); and that checks the existence of @ember/test-helpers in https://github.com/miragejs/ember-cli-mirage/blob/master/addon/get-rfc232-test-context.js#L13. I am thinking it is only applying to tests

It seems pretty unlikely that a significant number of people are using autostart since it's not documented anywhere. I stumbled across it while troubleshooting some Ember 3.28 upgrade issues and even after reading through the discussion it wasn't clear to me whether or not it had parity with setupMirage() or if there was some non-obvious benefit to using it.

For the sake of simplicity I think removing it is a reasonable idea.

Our codebase is quite old and uses autostart. Some old doc can be found here https://github.com/miragejs/ember-cli-mirage/releases/tag/v0.4.2

grapho commented

I am currently struggling with this as well.. even with a modern test setup (post 3.0) mirage server is still auto running somehow... causing setupMirage() to generate a 2nd Pretender deprecation..

Update: My ENV setup was wrong

if (environment === 'test') {
  ...
  ENV['ember-cli-mirage'] = {
    enabled: true,
  };

maybe this config was a relic from an older time pre-rfc-232/236?

but having this in ENV forces auto-run to happen despite this guard statement

maybe there needs to be some new (or restored 👀 ) documentation describing this behavior and how to properly migrate away from it?