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

Add new QUnit testing API. #232

Merged
merged 12 commits into from Jul 29, 2017
Merged

Add new QUnit testing API. #232

merged 12 commits into from Jul 29, 2017

Conversation

rwjblue
Copy link
Member

@rwjblue rwjblue commented Jun 14, 2017

rendered

Related to (though somewhat diverged from) emberjs/ember-qunit#258.
Related to #119.
Intending to land together with #229.

Copy link
Member

@stefanpenner stefanpenner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

Copy link
Member

@trentmwillis trentmwillis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, big 👍 on this RFC. A few nitty comments to ensure clarity while reading.

One thing that did strike me, that I feels needs to be better highlighted, is that the actual testing context API is changing as well as the test module setup API. The motivation mentions changes to moduleFor but doesn't call out that other APIs will also change (e.g., this.subject -> this.owner.lookup), which I think is rather critical because it makes migration less straightforward.

* Where are the lines between QUnit and ember-qunit?
* How can I use QUnit for plain JS objects?

The way that `ember-qunit` uses to wrap QUnit functionality makes the division
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "ember-qunituses to wrap QUnit" should likely be "ember-qunit wraps QUnit"


This function will:

* invoking `ember-test-helper`s `setContext` with the tests context
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "invoking" -> "invoke"

The migration can likely be largely automated (following the
[excellent codemod](https://github.com/Turbo87/ember-mocha-codemods) that
[Tobias Bieniek](https://github.com/turbo87) wrote for a similar `ember-mocha`
the transition), for folks but it is still useful to review concrete scenarios
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "for folks" seems unneeded here

Copy link
Member

@Turbo87 Turbo87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few minor comments, but in general : yes, please!! 👍

test('renders', async function(assert) {
assert.expect(1);

await this.render(hbs`{{pretty-color name="red"}}`);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since when is this.render() async? What if the platform doesn't support async/await yet?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since when is this.render() async?

Rendering a template has actually never been guaranteed to be synchronous. Future iterations of things in glimmer-vm will almost certainly take more advantage of async during rendering to allow the rendering engine to yield back to the browser to avoid blocking the main thread. Making this.render be a promise based API is a way to help ensure a change (that would help all apps in reality) doesn't troll all of our tests.

What if the platform doesn't support async/await yet?

Seems unrelated? The underlying implementation will be returning a promise. If the consuming application doesn't want to use async/await it would use promise chaining.

  test('renders', async function(assert) {
    assert.expect(1);

    return this.render(hbs`{{pretty-color name="red"}}`)
      .then(() => {
        assert.equal(this.$('.color-name').text(), 'red');
      });
  });

import hbs from 'htmlbars-inline-precompile';

module('x-foo', function(hooks) {
setupRenderingTest(hooks);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO we should pass the component name to the setup function here instead of relying on the module name, which seems a little brittle

Copy link
Member Author

@rwjblue rwjblue Jun 14, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The component name is completely unused/unneeded without needs/unit options (which this API will not support). There is no reliance on the module name at all either.

import { setupTest } from 'ember-qunit';

module('x-foo', function(hooks) {
setupTest(hooks);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above. how does setupTest() know that we're talking about a component and what its name is?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't matter at all actually. Thats the beauty of removing the arbitrary resolver restrictions (in #229).

There will be a number of changes to the primitives in ember-test-helpers to support this nicely (for both ember-mocha and ember-qunit).

let Factory = this.owner.factoryFor('component:x-foo');
let subject = Factory.create({
name: 'something'
});
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No this.subject() anymore?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, we have a public API for looking up and instantiating factories (factoryFor), which is polyfilled nicely via ember-getowner-polyfill and ember-factory-for-polyfill.

Removing this.subject and the unit / needs options is how we avoid requiring the extra arguments to setupTest.

* ember-source
* ember-data
* ember-cli-legacy-blueprints
* others?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth mentioning that we are already doing the same thing for ember-mocha too

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point, updated!

The work around is "simple" (if somewhat annoying), which is to "just nest another
level". The good news is that [Trent Willis](https://github.com/trentwillis) fixed
the underlying problem in [qunitjs/qunit#1188](https://github.com/qunitjs/qunit/pull/1188),
which should be released as 2.3.4 well before this RFC is merged.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this is actually not an issue since we can just bump the QUnit dependency in ember-qunit right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirm. I've spoken to @trentmwillis about it also, and I believe there shouldn't be a problem with getting a release out by the time this RFC is ready to be merged (which is a week or two at the minimum).

}
```

### `setupTest`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me how setupTest, etc. will be able to access the tests' this when we are only passing in the hooks object. To illustrate what I'm talking about, this is what I am doing in Glimmer:

function setupRenderingTest(context, hooks) {
  context.render = function render(/* not important */) {
    // ...
  };

  // ...
}
module('Component: <hello-glimmer />', function(hooks) {
  setupRenderingTest(this, hooks);

  test('it renders', assert => {
    // ...
  });
});

Basically just wondering if the setupTest(hooks) signature is realistic or if it's going to need to be setupTest(this, hooks). Or maybe this is a detail beyond the scope of this RFC.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@robbiepitts - A basic implementation of this API is already done (see here), and does function properly without the context being passed in. I believe that the signature proposed here is realistic.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohhh, cool. I didn't think of doing it that way.


This makes it much simpler to support multiple `before`, `beforeEach`, `afterEach`,
and `after` callbacks, and it also allows for arbitrary nesting of modules (though
this RFC is not advocating for arbitrary levels of nesting).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nested hooks would be amazing for more complex components / routes / whatever.

An example would be a route that has different behavior for "admin" users. Both of them need some similar setup (e.g. setting up mirage), but the two different "nested" modules could authenticate two different users - one admin and one not.

Currently not supporting nested modules is a bit of a pain point for our current apps, and I would love to have the ability to nest modules. What would be the blocker for supporting this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@NLincoln:

I'll try to update the wording to be a bit more clear. What I'm saying is that this RFC isn't saying that you must use multiple levels of nesting (that seems like an application level stylistic choice), but it is requiring that we use the nested modules syntax even if only using a single level.

This RFC proposal (and the spike implementation done in emberjs/ember-qunit#258) would fully support QUnit nested modules.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the wishy washy language around arbitrarily nesting modules. 💃

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yessssss.... 😄 Very excited about this 👍

@rwjblue
Copy link
Member Author

rwjblue commented Jun 14, 2017

@trentmwillis:

One thing that did strike me, that I feels needs to be better highlighted, is that the actual testing context API is changing as well as the test module setup API.

@Turbo87:

IMHO we should pass the component name to the setup function here instead of relying on the module name, which seems a little brittle
...
Since when is this.render() async?

Good points! I've just added a section to specifically call out significant changes from the current system.

Copy link
Member

@hjdivad hjdivad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hugely excited for this: 👍

@rwjblue
Copy link
Member Author

rwjblue commented Jun 15, 2017

A few folks (e.g. @ebryn and @stefanpenner) have approached me with concerns around the hooks argument I have mentioned/used here. The concerns are generally an initial reaction to the QUnit nested modules API in general and not directly related to this RFC (other than it highlighting a new feature that they haven't used before).

The main concerns as I understood it are:

  • Teaching folks what hooks means is a bit more difficult because it does not represent the "test environment", but rather just a way to invoke the callbacks for before / beforeEach / after / afterEach.
  • Passing only hooks to the helper functions proposed in the RFC means that if we ever need to thread more information through, we either have to use hooks as a transport or change our API to add more arguments.
  • It seems somewhat impossible to communicate across multiple helpers (again without using hooks as a state/transport mechanism).

I've kicked off a conversation over with the QUnit folks in qunitjs/qunit#1200. If that PR were merged this proposal would be modified to the following syntax:

// current proposal
module('x-foo', function(hooks) {
  setupRenderingTest(hooks);
  // ....snip....
});

// after qunitjs/qunit#1200
module('x-foo', function(hooks) {
  setupRenderingTest(this);
  // ....snip....
});

I will update the RFC to list this as an unanswered question, but I personally do not find this to be a blocking issue (we'll see how others feel). This RFC is mostly just leveraging what the underlying test framework has to offer (which is one of the primary objectives in the motivation section).

@Turbo87
Copy link
Member

Turbo87 commented Jun 16, 2017

@rwjblue I'm not sure I understand that last comment about hooks properly yet. In ember-mocha we don't need to pass this into the setup functions at all since we only need this in the setup/teardown functions, which are bound to the correct context automatically... maybe I'm misunderstanding something here 🤔

@rwjblue
Copy link
Member Author

rwjblue commented Jun 16, 2017

@Turbo87:

In ember-mocha we don't need to pass this into the setup functions at all since we only need this in the setup/teardown functions, which are bound to the correct context automatically

Yep, I absolutely understand how it works in ember-mocha. Unlike mocha, QUnit does not provide global functions for before/beforeEach/afterEach/after. The only way to register these callbacks in a QUnit setting is to pass in the first argument of the module callback (which has been named hooks in the examples for this RFC as well as a few examples on qunitjs.com).

@rwjblue
Copy link
Member Author

rwjblue commented Jun 16, 2017

Another possible mitigation to the strangeness of the word hooks as the argument, is to use module. After discussing with the QUnit folks, it seems that this argument represents the "module context".

This would change the examples here in this RFC to be:

module('x-foo', function(module) {
  setupRenderingTest(module);
  // ....snip....
});

The mental model here would be:

The callback receives the module instance that was created so that you can add before/beforeEach/afterEach/after callbacks.

tldr; I think module works much better here...

@rwjblue
Copy link
Member Author

rwjblue commented Jul 1, 2017

This was discussed at the 2017-06-30 core team meeting, and given that the responses by folks are overwhelmingly positive it is ready to advance to final comment period.

@rwjblue
Copy link
Member Author

rwjblue commented Jul 8, 2017

QUnit 2.4.0 was just released (thanks @trentmwillis!) which includes the required changes to enable this API.

@rwjblue
Copy link
Member Author

rwjblue commented Jul 29, 2017

No new information was identified during final comment period, thanks to everyone for the detailed review and help working through this. Let's get it done!

@rwjblue rwjblue merged commit ecc1c1b into emberjs:master Jul 29, 2017
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 11, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 11, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 11, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 11, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 12, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 12, 2018
As of Ember 3.0 the new testing APIs introduced in emberjs/rfcs#232 and
emberjs/rfcs#268 are enabled and used by default. In these APIs no
globals are used, therefore this extra `tests/` override is removed.

This specifically removes the following globals from being allowed:

* `andThen`
* `click`
* `currentPath`
* `currentRouteName`
* `currentURL`
* `fillIn`
* `find`
* `findWithAssert`
* `keyEvent`
* `pauseTest`
* `resumeTest`
* `triggerEvent`
* `visit`
* `wait`
rwjblue added a commit to rwjblue/ember-cli that referenced this pull request Jan 13, 2018
As of Ember 3.0 the new testing APIs introduced in emberjs/rfcs#232 and
emberjs/rfcs#268 are enabled and used by default. In these APIs no
globals are used, therefore this extra `tests/` override is removed.

This specifically removes the following globals from being allowed:

* `andThen`
* `click`
* `currentPath`
* `currentRouteName`
* `currentURL`
* `fillIn`
* `find`
* `findWithAssert`
* `keyEvent`
* `pauseTest`
* `resumeTest`
* `triggerEvent`
* `visit`
* `wait`
rwjblue added a commit to rwjblue/builds that referenced this pull request Jan 14, 2018
locks pushed a commit to ember-learn/builds that referenced this pull request Jan 16, 2018
* updated packages and ember-cli-deploy

(cherry picked from commit e4042d8)

* Bring back `.env.example`.

* Update ember-cli from 2.14 to 2.18 blueprint.

* Remove bower and phantom references.

* Fix linting failures after eslint config updates.

* yarn upgrade

* Loosen dependencies (all use `^` now).

* Update ember-moment and ember-cli-moment-shim to latest.

* Remove legacy zeroclipboard app.imports.

* Use `--no-sandbox` flag with Chrome on CI.

* Update tests to emberjs/rfcs#232 format.
thetimothyp pushed a commit to thetimothyp/ember-cli that referenced this pull request Jan 19, 2018
As of ember-source@3.0.0 (and ember-data@3.0.0) the testing blueprints
are automatically emitting emberjs/rfcs#232 or emberjs/rfcs#268
compatible output. With those, these helpers are no longer used for new
apps.

Existing apps should only delete these files once they have migrated to
the new testing system...
thetimothyp pushed a commit to thetimothyp/ember-cli that referenced this pull request Jan 19, 2018
As of Ember 3.0 the new testing APIs introduced in emberjs/rfcs#232 and
emberjs/rfcs#268 are enabled and used by default. In these APIs no
globals are used, therefore this extra `tests/` override is removed.

This specifically removes the following globals from being allowed:

* `andThen`
* `click`
* `currentPath`
* `currentRouteName`
* `currentURL`
* `fillIn`
* `find`
* `findWithAssert`
* `keyEvent`
* `pauseTest`
* `resumeTest`
* `triggerEvent`
* `visit`
* `wait`
apucher pushed a commit to apache/pinot that referenced this pull request Mar 19, 2018
What's new:
updating the old moduleFor syntax to the newer syntax (used in Ember 3.0) as proposed in emberjs/rfcs#232
Tests:
All tests still passing 268/268
npawar pushed a commit to apache/pinot that referenced this pull request Apr 6, 2018
What's new:
updating the old moduleFor syntax to the newer syntax (used in Ember 3.0) as proposed in emberjs/rfcs#232
Tests:
All tests still passing 268/268
Turbo87 pushed a commit to ember-cli/ember-cli-eslint that referenced this pull request Oct 17, 2018
Bumps [ember-source](https://github.com/emberjs/ember.js) from 2.18.2 to 3.5.0.
<details>
<summary>Release notes</summary>

*Sourced from [ember-source's releases](https://github.com/emberjs/ember.js/releases).*

> ## v3.5.0
> ### CHANGELOG
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> 
> ## v3.5.0-beta.4
> ### CHANGELOG
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) / [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ## v3.5.0-beta.3
> ### CHANGELOG
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation w/o jQuery
> 
> ## v3.5.0-beta.2
> ### CHANGELOG
> 
> - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.38.8
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> 
> ## v3.5.0-beta.1
> ### CHANGELOG
> 
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> - [#16907](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16907) Upgrade to TypeScript 3.0
> 
> ## v3.4.5
> ### CHANGELOG
> 
> - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0.
> 
> ## v3.4.4
> ### CHANGELOG
> 
> - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11
> 
> ## v3.4.3
> ### CHANGELOG
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ## v3.4.2
> ### CHANGELOG 
> 
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery
> 
></table> ... (truncated)
</details>
<details>
<summary>Changelog</summary>

*Sourced from [ember-source's changelog](https://github.com/emberjs/ember.js/blob/master/CHANGELOG.md).*

> ### v3.5.0 (October 8, 2018)
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> 
> ### v3.4.5 (October 4, 2018)
> 
> - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0.
> 
> ### v3.4.4 (September 27, 2018)
> 
> - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11
> 
> ### v3.4.3 (September 25, 2018)
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ### v3.4.2 (September 24, 2018)
> 
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery
> 
> ### v3.4.1 (September 10, 2018)
> 
> - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.35.8
> 
> ### v3.4.0 (August 27, 2018)
> 
> - [#16603](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16603) [BUGFIX] Support mouseEnter/Leave events w/o jQuery
> - [#16857](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16857) [BUGFIX] Prevents the recursive redefinition of root chains
> - [#16854](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16854) [BUGFIX] Don't thread FactoryManager through createComponent
> - [#16773](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16773) [FEATURE] Custom component manager (see [emberjs/rfcs#213](https://github.com/emberjs/rfcs/blob/master/text/0213-custom-components.md) for more details)
> - [#16708](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16708) [FEATURE] Angle bracket component invocation (see [emberjs/rfcs#311](https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md) for more details)
> - [#16744](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16744) [DEPRECATION] Deprecate `component#sendAction` (see [emberjs/rfcs#335](https://github.com/emberjs/rfcs/blob/master/text/0335-deprecate-send-action.md) for more details)
> - [#16720](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16720) Upgrade `backburner.js` to 2.3.0
> - [#16783](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16783) [BUGFIX] Allow setting length on ArrayProxy.
> - [#16785](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16785) [BUGFIX] Ensure `ArrayMixin#invoke` returns an Ember.A.
> - [#16784](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16784) [BUGFIX] Setting ArrayProxy#content in willDestroy resets length.
> - [#16794](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16794) [BUGFIX] Fix instance-initializer-test blueprint for new QUnit testing API ([emberjs/rfcs#232](https://github-redirect.dependabot.com/emberjs/rfcs/pull/232))
> - [#16797](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16797) [BUGFIX] Drop autorun assertion
> 
> ### v3.3.2 (August 20, 2018)
> 
> - [#16853](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16853) [BUGFIX] Allow ArrayProxy#pushObjects to accept ArrayProxy again
> - [#16870](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16870) [BUGFIX] Enable @ember/object#get to be called with an empty string
> 
> ### v3.3.1 (July 23, 2018)
> 
> - [#16836](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16836/commits) [DOC] Fix Broken 3.3 API Documentation
> 
></table> ... (truncated)
</details>
<details>
<summary>Commits</summary>

- [`db6a5de`](emberjs/ember.js@db6a5de) Release v3.5.0
- [`cae13d4`](emberjs/ember.js@cae13d4) Add v3.5.0 to CHANGELOG
- [`5da9996`](emberjs/ember.js@5da9996) Fix typo on line 75
- [`b41d933`](emberjs/ember.js@b41d933) Fixup CHANGELOG
- [`48ad148`](emberjs/ember.js@48ad148) Add v3.4.5 to CHANGELOG
- [`d37a42e`](emberjs/ember.js@d37a42e) Release v3.5.0-beta.4
- [`942fdb7`](emberjs/ember.js@942fdb7) Add v3.5.0-beta.4 to CHANGELOG
- [`16225e8`](emberjs/ember.js@16225e8) [DOC RELEASE] [DOC 3.3] [DOC 3.4] Fix missing docs
- [`e90e1c6`](emberjs/ember.js@e90e1c6) Fix rendering of empty content with `{{{...}}}` in IE11
- [`d752b94`](emberjs/ember.js@d752b94) Merge pull request [#17004](https://github-redirect.dependabot.com/emberjs/ember.js/issues/17004) from emberjs/beta-triple-curlies-bugfix
- Additional commits viewable in [compare view](emberjs/ember.js@v2.18.2...v3.5.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)](https://dependabot.com/compatibility-score.html?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

Dependabot will **not** automatically merge this PR because it includes a major update to a development dependency.

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
Turbo87 pushed a commit to emberjs/ember-qunit that referenced this pull request Oct 17, 2018
Bumps [ember-source](https://github.com/emberjs/ember.js) from 2.18.2 to 3.5.0.
<details>
<summary>Release notes</summary>

*Sourced from [ember-source's releases](https://github.com/emberjs/ember.js/releases).*

> ## v3.5.0
> ### CHANGELOG
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> 
> ## v3.5.0-beta.4
> ### CHANGELOG
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) / [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ## v3.5.0-beta.3
> ### CHANGELOG
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation w/o jQuery
> 
> ## v3.5.0-beta.2
> ### CHANGELOG
> 
> - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.38.8
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> 
> ## v3.5.0-beta.1
> ### CHANGELOG
> 
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> - [#16907](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16907) Upgrade to TypeScript 3.0
> 
> ## v3.4.5
> ### CHANGELOG
> 
> - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0.
> 
> ## v3.4.4
> ### CHANGELOG
> 
> - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11
> 
> ## v3.4.3
> ### CHANGELOG
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ## v3.4.2
> ### CHANGELOG 
> 
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery
> 
></table> ... (truncated)
</details>
<details>
<summary>Changelog</summary>

*Sourced from [ember-source's changelog](https://github.com/emberjs/ember.js/blob/master/CHANGELOG.md).*

> ### v3.5.0 (October 8, 2018)
> 
> - [#16978](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16978) [BUGFIX] Properly teardown alias
> - [#16877](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16877) [CLEANUP] Allow routes to be named "array" and "object"
> 
> ### v3.4.5 (October 4, 2018)
> 
> - [#17029](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17029) [BUGFIX] Update backburner.js to 2.4.0.
> 
> ### v3.4.4 (September 27, 2018)
> 
> - [#17013](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17013) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')` in IE11
> 
> ### v3.4.3 (September 25, 2018)
> 
> - [#17003](https://github-redirect.dependabot.com/emberjs/ember.js/pull/17003) [BUGFIX] Fix rendering of empty content with `{{{...}}}` or `{{...}}` with `htmlSafe('')`
> 
> ### v3.4.2 (September 24, 2018)
> 
> - [#16860](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16860) [BUGFIX] Clear chains in ProxyMixin when destroyed
> - [#16999](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16999) [BUGFIX] Fix mouseEnter/Leave event delegation without jQuery
> 
> ### v3.4.1 (September 10, 2018)
> 
> - [#16933](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16933) [BUGFIX] Update glimmer-vm packages to 0.35.8
> 
> ### v3.4.0 (August 27, 2018)
> 
> - [#16603](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16603) [BUGFIX] Support mouseEnter/Leave events w/o jQuery
> - [#16857](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16857) [BUGFIX] Prevents the recursive redefinition of root chains
> - [#16854](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16854) [BUGFIX] Don't thread FactoryManager through createComponent
> - [#16773](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16773) [FEATURE] Custom component manager (see [emberjs/rfcs#213](https://github.com/emberjs/rfcs/blob/master/text/0213-custom-components.md) for more details)
> - [#16708](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16708) [FEATURE] Angle bracket component invocation (see [emberjs/rfcs#311](https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md) for more details)
> - [#16744](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16744) [DEPRECATION] Deprecate `component#sendAction` (see [emberjs/rfcs#335](https://github.com/emberjs/rfcs/blob/master/text/0335-deprecate-send-action.md) for more details)
> - [#16720](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16720) Upgrade `backburner.js` to 2.3.0
> - [#16783](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16783) [BUGFIX] Allow setting length on ArrayProxy.
> - [#16785](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16785) [BUGFIX] Ensure `ArrayMixin#invoke` returns an Ember.A.
> - [#16784](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16784) [BUGFIX] Setting ArrayProxy#content in willDestroy resets length.
> - [#16794](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16794) [BUGFIX] Fix instance-initializer-test blueprint for new QUnit testing API ([emberjs/rfcs#232](https://github-redirect.dependabot.com/emberjs/rfcs/pull/232))
> - [#16797](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16797) [BUGFIX] Drop autorun assertion
> 
> ### v3.3.2 (August 20, 2018)
> 
> - [#16853](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16853) [BUGFIX] Allow ArrayProxy#pushObjects to accept ArrayProxy again
> - [#16870](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16870) [BUGFIX] Enable @ember/object#get to be called with an empty string
> 
> ### v3.3.1 (July 23, 2018)
> 
> - [#16836](https://github-redirect.dependabot.com/emberjs/ember.js/pull/16836/commits) [DOC] Fix Broken 3.3 API Documentation
> 
></table> ... (truncated)
</details>
<details>
<summary>Commits</summary>

- [`db6a5de`](emberjs/ember.js@db6a5de) Release v3.5.0
- [`cae13d4`](emberjs/ember.js@cae13d4) Add v3.5.0 to CHANGELOG
- [`5da9996`](emberjs/ember.js@5da9996) Fix typo on line 75
- [`b41d933`](emberjs/ember.js@b41d933) Fixup CHANGELOG
- [`48ad148`](emberjs/ember.js@48ad148) Add v3.4.5 to CHANGELOG
- [`d37a42e`](emberjs/ember.js@d37a42e) Release v3.5.0-beta.4
- [`942fdb7`](emberjs/ember.js@942fdb7) Add v3.5.0-beta.4 to CHANGELOG
- [`16225e8`](emberjs/ember.js@16225e8) [DOC RELEASE] [DOC 3.3] [DOC 3.4] Fix missing docs
- [`e90e1c6`](emberjs/ember.js@e90e1c6) Fix rendering of empty content with `{{{...}}}` in IE11
- [`d752b94`](emberjs/ember.js@d752b94) Merge pull request [#17004](https://github-redirect.dependabot.com/emberjs/ember.js/issues/17004) from emberjs/beta-triple-curlies-bugfix
- Additional commits viewable in [compare view](emberjs/ember.js@v2.18.2...v3.5.0)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)](https://dependabot.com/compatibility-score.html?dependency-name=ember-source&package-manager=npm_and_yarn&previous-version=2.18.2&new-version=3.5.0)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

Dependabot will **not** automatically merge this PR because it includes an out-of-range update to a development dependency.

---

**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
mloar added a commit to UIllLRev/e-bookpull that referenced this pull request Sep 3, 2019
mloar added a commit to UIllLRev/e-bookpull that referenced this pull request Oct 21, 2019
mloar added a commit to UIllLRev/e-bookpull that referenced this pull request Feb 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants