diff --git a/app/components/admin-addon-review-form.js b/app/components/admin-addon-review-form.js index e0a29a30..993b3888 100644 --- a/app/components/admin-addon-review-form.js +++ b/app/components/admin-addon-review-form.js @@ -11,6 +11,9 @@ export default class AdminAddonReviewForm extends Component { @tracked recentlySaved = false; + @tracked + reviewText = null; + questions = questions; @service @@ -19,6 +22,7 @@ export default class AdminAddonReviewForm extends Component { @action reset() { this.reviewProperties = tracked({}); + this.reviewText = null; } @action diff --git a/app/helpers/prevent-default.js b/app/helpers/prevent-default.js index f718181b..57f72562 100644 --- a/app/helpers/prevent-default.js +++ b/app/helpers/prevent-default.js @@ -3,6 +3,6 @@ import { helper } from '@ember/component/helper'; export default helper(function preventDefaultHelper([fn]) { return (event) => { event.preventDefault(); - fn(); + fn(event); }; }); diff --git a/tests/acceptance/admin-review-addon-test.js b/tests/acceptance/admin-review-addon-test.js index 7ab6b20e..9a48dd32 100644 --- a/tests/acceptance/admin-review-addon-test.js +++ b/tests/acceptance/admin-review-addon-test.js @@ -654,6 +654,38 @@ module('Acceptance | admin review addon', function (hooks) { assert.equal(actualMessage, 'Failed to create review'); }); + test('resets toggles/fields when changing addons', async function (assert) { + let firstAddon = server.create('addon', { note: null }); + let secondAddon = server.create('addon', { note: null }); + console.log('firstAddon: %O', firstAddon); + console.log('secondAddon: %O', secondAddon); + + await visitAddon(firstAddon, '?list=needing-review'); + await toggle('.test-toggle-is-wip'); + await fillIn('.test-note-input', 'Some notes about this addon'); + await click('.test-save-addon'); + + await answerQuestion('Are there meaningful tests?', 'Yes'); + await answerQuestion('Is the README filled out?', 'Yes'); + await answerQuestion('Does the addon have a build?', 'No'); + await fillIn('.test-addon-review-notes', 'A note on the review'); + await click('.test-addon-review-save'); + + // go to the other addon + await click(findByText('.test-review-list-item', secondAddon.name)); + assertToggleState(assert, '.test-toggle-is-wip', { + checked: true, + text: 'Not a WIP', + }); + assert.dom('.test-note-input').hasNoValue('clears addon note field'); + assert + .dom('.test-review-question button.selected') + .doesNotExist('clears review questions'); + assert + .dom('.test-addon-review-notes') + .hasNoValue('clears review note field'); + }); + module('lists', function () { test('Visiting list without a list param defaults to needing-review', async function (assert) { let addon = server.create('addon', {