All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix ember-power-select dropdown discovery.
- Upgrade ember-power-select to v5.
- Properly singularize label naems. This should be non-breaking.
- Fix radio button checked state step.
- ⚠ Fixed the footprint of the Mirage record attribute Then step, in now uses JSON.
- Collapsed whitespace text steps.
- Then step to assert HTML element text/value matching a regex.
- Fixed chai
equal
assertions.
- Fixed a local storage step's footprint and documentation.
- Added a When step for keypresses.
- Added a Then step to check a CSS property with a value on an element.
- The
opinionatedJSON
converter was incorrectly scoped with the label regex.
- ⚠ Refactored the seeding steps in the Given section. Removed special id handling and relationship lookup, added explicit single- and multi-line versions of JSON and table steps.
$opinionatedModelName
converter converts a model name to singular, camel-cased form and ensures it exists in Mirage (throws otherwise).$opionionatedJSONObject
converter is the same as$opinionatedJSON
, but the regex limits it to objects, so that it can be distinguished from$opinionatedTable
.- The
$opionionatedJSON
and$opinionatedJSONObject
converters now throw a more meaningful error when JSON parsing fails.
- Made
chai-as-promised
a prod dependency.
- ⚠ Min supported version of Ember CLI raised to 3.8.
- ⚠ The signature of many steps has changed, it now requires quotes for dynamic parts.
- ⚠ Label map is now accessible only through helper functions. Please update import paths.
- A suite of steps for local storage.
- Improved error message that terminates scenario execution after another error.
- QUnit support, fixes #3. 🎉
- Upgraded Ember CLI to 3.13.1, upgraded dependencies.
- config/environment step.
⚠️ New installation step.
- Mirage failure step.
- Multilne element text step.
- Support for polymorphic relationships in the Mirage seeding steps.
- Focus in/out steps.
- The usage of NOT in steps is more flexible, allowing to use placeholders like this:
Then the Price should [Not] be "[Value]"
. - Allow NOT steps to pass when no element is found.
- The item text step can now use "be" in its phrasing.
- Step for checking a value of an input/textarea/select inside given element.
- The
findEditable
DOM helper now accepts an option to excludecontenteditable
.
⚠️ Fixed typo in helper name:powerselectIsTriggerDisabled
→powerSelectIsTriggerDisabled
.⚠️ DOM helpers must now be imported fromember-cli-yadda-opinionated/test-support/dom-helpers
.
- Support spaces in
data-test-
attribute values. - Correctly work with nested components.
- Mention which DOM helpers are async.
- Removed power select and power date picker steps from the index file. Those steps can be imported from distinct locations (resolves #20):
ember-cli-yadda-opinionated/test-support/steps/power-select
ember-cli-yadda-opinionated/test-support/steps/power-date-picker
- Mention import paths of steps modules.
- Fixed error message in the step for (de) selecting a radio button.
- Relying on regex
(.*)
instead of an undefined macro$text
: better compatibilty and allows for empty strings
- A "server.logging" step for Mirage which enables server logging for the current test.
- The "Element text" looks into the
value
attribue when used on an input or textarea. - The
findEditable
helper will return the given element if its editable or will look up an editable element inside the given element. - The
fillInByLabel
DOM helper now looks up an editable element viafindEditable
.
- Fixed the examples of the "Select/deselect checkbox or radio button corresponding to the label with given text" step.
powerSelectIsTriggerDisabled
helper.- Power Select step for checking the disabled state of the trigger.
- Steps for manipulating and checking steps of checkboxes and radios.
findRadioForLabelWithText
renamed tofindInputForLabelWithText
- Added missing exports for integration test helpers.
- New steps:
- Current URL pathname (URL without query params)
- Query param presence in URL
- Query param value in URL
- Power Select selected item step now correctly detects lack of trigger.
- A bunch of new integration test helpers:
findSelfOrChild
accepts an element and an HTML class name, returns self or a child with that class name.findAllByLabel
andfindSingleByLabel
: equivalent offindByLabel
but returns element(s) rather than a tuple.triggerByLabel
,mouseEnterByLabel
,mouseLeaveByLabel
.findRadioForLabelWithText
.powerSelectFindSelectedOptions
,powerSelectFilterSelectedOptionsByText
,powerSelectIsSelectedOptionDisabled
,powerSelectRemoveSelectedOption
.powerDatePickerFindTrigger
,powerDatePickerFindDropdown
.
- A bunch of new steps:
- Power Date Picker step for selecting a certain date.
- Power Select steps:
- Assert count of selected items.
- Assert disabled state of a dropdown item targeted by index.
- Assert disabled state of a dropdown item targeted by text and optional index.
- Deselect a selected item targeted by index.
- Deselect a selected item targeted by text and optional index.
- Assert disabled state of a selected item targeted by index.
- Assert disabled state of a selected item targeted by text and optional index.
- Radio Button steps:
- Select a certain radio by clicking on a corresponding label targeted by text.
- Assert a certain radio button is selected targeted by text of a corresponding label.
- The fill-in step will look up for a fillable child inside the referenced element, if the referenced element is not fillable. Will crash if more than one fillable child found.
- No longer crash by trying to mutate
DOMException
error message.
- Select item by text for
ember-power-select
.
- Adjusted the logic of the seeding step.
⚠️ Changed the signature of element visibility step.⚠️ The seeding step now properly looks up related record type instead of using relationship name as record type.
- Trigger text step for
ember-power-select
. - Select Nth item step for
ember-power-select
. - Mirage DB record key/value step.
- Nth item text step for
ember-power-select
. - Error messages now contain detailed information: step, chosen step, args (including label, selector and found elements count). No need to pass those details manually! :D
- Items count step for
ember-power-select
.
- Mouseenter/mouseleave steps
- The NOT modificator for then steps.
- The has HTML class step.
- The has HTML attr step.
- Non-existing step alias now triggers a meaningful error.
- Mentioned in the readme that steps defined with the chained syntax are harder to test than composable steps.
- Mentioned installation of
ember-cli-chai
andchai-dom
as one of installation stpes. - Made the description of the visibility step more correct.
- The double click step.
- The visibility assertion step.
- Step aliases.
- Added and documented the
clickByLabel
andfillInByLabel
helpers for integration testing.
- Fixed import path for
findByLabel
.
- Added a
setupDictionary
convenience helper to avoid populating a dictionary by hand, fixes #11. - Added
opinionatedSteps
export that includes all available steps, fixes #10. - Added support
first
,second
, etc indices in addition to1st
,2nd
, etc.
- Removed
ember-cli-release
since that addon develompment has stalled. Releases can be done withnpm
andgit
. - Moved modules to the
-private/
subfolder, fixes #12 - Namespaced
table
andelement
converters asopinionatedTable
andopinionatedElement
to avoid conflicts.
- Added Table of Contents to the readme.
- Added readme badges.
First release.