Skip to content

Latest commit

 

History

History
153 lines (83 loc) · 5.43 KB

CHANGELOG.md

File metadata and controls

153 lines (83 loc) · 5.43 KB

Unreleased

Added

  • Ensure field/assoc/embed exists when listing errors in flat_errors_on/3. This prevents accidental test passes on typos in assertions like refute_errors_on(cs, :sommtypo).

[1.0.0] - 2023-12-21

No changes from v0.17.0.

[0.17.0] - 2023-12-20

Added

  • Add BitcrowdEcto.Changeset.cast_all/3, a introspection-based automatic cast function.
  • Add BitcrowdEcto.Assertions.assert_cast_error_on/2.

Fixed

  • Allow any type of id param in Repo.fetch/2. Remove the (incorrect) guard restricting the id param to binaries, against the spec saying it would allow any.
  • Handle missing schemas gracefully in Migrator.ensure_up!/0.

[0.16.0] - 2023-03-21

Added

  • Convert Ecto.Query.CastError in Repo.fetch_by/3 & friends to :not_found errors. Opt-out via raise_cast_error option.

[0.15.0] - 2023-02-13

Added

  • Give Repo.fetch_by/2, Repo.count/1, and Assertions.assert_count_difference/4 an optional opts parameter that is forwarded to the underlying Ecto function. Useful to pass query options like :prefix.

[0.14.0] - 2023-01-03

Added

  • Changed Repo.fetch/2 and Repo.fetch/3 to work with primary key with name other than id.

[0.13.2] - 2022-12-19

  • Add error_tag option to BitcrowdEcto.Repo.fetch_by/3 and friends to allow overriding the queryable in the error result.

[0.13.1] - 2022-09-21

Fixed

  • Fix dependency specifications by restoring the :only options and explicitly listing conflicting packages. See kipcole9/money#142 for explanation.

[0.13.0] - 2022-09-14

NOTE: 0.13.0 needed to be retired due to a corrupt dependency tree listing all dev/test dependencies as prod dependencies.

  • Add BitcrowdEcto.Changeset.validate_money/3 for validating Money values from ex_money, which is introduced as an optional dependency.

[0.12.0] - 2022-06-21

Added

  • Add BitcrowdEcto.DateTime.beginning_of_month/1.
  • Add BitcrowdEcto.DateTime.beginning_of_last_month/1.
  • Add BitcrowdEcto.DateTime.beginning_of_next_month/1.
  • Add BitcrowdEcto.DateTime.beginning_of_yesterday/1.
  • Add BitcrowdEcto.DateTime.beginning_of_tomorrow/1.

[0.11.0] - 2022-06-09

  • Add BitcrowdEcto.Changeset.validate_date_after/3 Validates a date field in the changeset is after the given reference date.
  • Add BitcrowdEcto.Changeset.validate_hex_color/2 validates a changeset field has hexadecimal color format.
  • Add BitcrowdEcto.Assertions.assert_changeset_valid/1.
  • Add BitcrowdEcto.Assertions.refute_changeset_valid/1.

[0.10.0] - 2022-04-28

Added

  • New BitcrowdEcto.Assertions.assert_*_constraint_on/2 matchers assert on constraints on changesets without going to the database.
  • Add BitcrowdEcto.DateTime.shift/2 and BitcrowdEcto.DateTime.beginning_of_day/1.

Changed

  • BREAKING: Stopped inspecting the from/to fields in validate_transition/3 error details. Previously atom columns (e.g. from Ecto.Enum) would result in [from: ":foo", to: ":bar"] error details, now these atoms are inserted unchanged as [from: :foo, to: :bar]
  • BREAKING: Removed :field from validate_transition/3 error details as it is redundant with the error field.
  • Deprecated BitcrowdEcto.Assertions.assert_foreign_constraint_error_on/2 in favour of new assert_foreign_key_constraint_error_on/2. Constraint assert functions are all called after the Ecto.Changeset.*_constraint functions now, not after internal error type names.

[0.9.0] - 2022-03-25

Added

  • Add BitcrowdEcto.Assertions.assert_change_to_almost_now/2 to assert that the value of a datetime field changed to the present time.

  • Add BitcrowdEcto.Schema.to_enum_member/3 and BitcrowdEcto.Schema.to_enum_member!/3, functions that safely convert a string to the member of an enum based on reflection on the given schema.

Changed

  • BREAKING: Add :only_web option to BitcrowdEcto.Changeset.validate_email/3 that enforces a dot in the host part of the email address (e.g. foo@example.net is valid, foo@example is not). Defaults to true.

[0.8.0] - 2022-03-03

Changed

  • BREAKING: Drop the BitcrowdEcto.Migration.grant_dml_privileges_on_schema/2 variant that reads from a configuration variable. However, the keyword list on grant_dml_privileges_on_schema/3 has become optional, so effectively there is a different /2 now.

[0.7.0] - 2022-03-02

Added

  • Add BitcrowdEcto.Migration for migration utilities, first util is grant_dml_privileges_on_schema/2 that GRANTs certain privileges to a Postgres role.

[0.6.0] - 2022-02-10

Added

  • Add BitcrowdEcto.Random containing various random token generators.
  • Add validate_past_datetime/3, validate_future_datetime/3, validate_datetime_after/4, validate_date_order/4, validate_datetime_order/4 and validate_order/5 to BitcrowdEcto.Changeset.

[0.5.0] - 2022-02-04

Added

  • Add Migrator.ensure_up!/0 to check whether all migrations are up.

[0.4.0] - 2022-01-28

Added

  • Add handle_migrator_exception/2 callback to Migrator to allow exception reporting.

[0.3.1] - 2022-01-17

Added

  • Add missing assert_sorted_equal/3.

[0.3.0] - 2022-01-17

Added

  • Add assert_almost_now/1, assert_almost_coincide/3 and assert_sorted_equal/2 to BitcrowdEcto.Assertions.

[0.2.0] - 2022-01-17

Added

  • Add BitcrowdEcto.DateTime.in_seconds/1.

[0.1.0] - 2022-01-07

Initial release to the public 🎉