Skip to content

Commit

Permalink
Remove the ds-boolean-transform-allow-null feature flag
Browse files Browse the repository at this point in the history
  • Loading branch information
bmac committed Oct 18, 2016
1 parent 9593e17 commit a43b450
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 44 deletions.
4 changes: 0 additions & 4 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ entry in `config/features.json`.

## Feature Flags

- `ds-boolean-transform-allow-null` [#4022](https://github.com/emberjs/data/pull/4022)

Allow `null`/`undefined` values for `boolean` attributes via `DS.attr('boolean', { allowNull: true })`

- `ds-improved-ajax` [#3099](https://github.com/emberjs/data/pull/3099)

This feature allows to customize how a request is formed by overwriting
Expand Down
12 changes: 4 additions & 8 deletions addon/-private/transforms/boolean.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,8 @@ export default Transform.extend({
deserialize(serialized, options) {
var type = typeof serialized;

if (isEnabled('ds-boolean-transform-allow-null')) {
if (isNone(serialized) && options.allowNull === true) {
return null;
}
if (isNone(serialized) && options.allowNull === true) {
return null;
}

if (type === "boolean") {
Expand All @@ -62,10 +60,8 @@ export default Transform.extend({
},

serialize(deserialized, options) {
if (isEnabled('ds-boolean-transform-allow-null')) {
if (isNone(deserialized) && options.allowNull === true) {
return null;
}
if (isNone(deserialized) && options.allowNull === true) {
return null;
}

return Boolean(deserialized);
Expand Down
1 change: 0 additions & 1 deletion config/features.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"ds-boolean-transform-allow-null": true,
"ds-improved-ajax": true,
"ds-pushpayload-return": null,
"ds-extended-errors": null,
Expand Down
14 changes: 5 additions & 9 deletions tests/unit/model-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1131,17 +1131,13 @@ test("a DS.Model can describe Boolean attributes", function(assert) {
assert.converts('boolean', 1, true);
assert.converts('boolean', 0, false);

if (isEnabled('ds-boolean-transform-allow-null')) {
assert.converts('boolean', null, null, { allowNull: true });
assert.converts('boolean', null, null, { allowNull: true });

assert.converts('boolean', null, false, { allowNull: false });
assert.converts('boolean', null, false, { allowNull: false });

// duplicating the tests from the else branch here, so once the feature is
// enabled and the else branch is deleted, those assertions are kept
assert.converts('boolean', null, false);
} else {
assert.converts('boolean', null, false);
}
// duplicating the tests from the else branch here, so once the feature is
// enabled and the else branch is deleted, those assertions are kept
assert.converts('boolean', null, false);

assert.converts('boolean', true, true);
assert.converts('boolean', false, false);
Expand Down
34 changes: 12 additions & 22 deletions tests/unit/transform/boolean-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,14 @@ module("unit/transform - DS.BooleanTransform");
test("#serialize", function(assert) {
var transform = new DS.BooleanTransform();

if (isEnabled('ds-boolean-transform-allow-null')) {
assert.equal(transform.serialize(null, { allowNull: true }), null);
assert.equal(transform.serialize(undefined, { allowNull: true }), null);
assert.equal(transform.serialize(null, { allowNull: true }), null);
assert.equal(transform.serialize(undefined, { allowNull: true }), null);

assert.equal(transform.serialize(null, { allowNull: false }), false);
assert.equal(transform.serialize(undefined, { allowNull: false }), false);
assert.equal(transform.serialize(null, { allowNull: false }), false);
assert.equal(transform.serialize(undefined, { allowNull: false }), false);

assert.equal(transform.serialize(null, {}), false);
assert.equal(transform.serialize(undefined, {}), false);
} else {
assert.equal(transform.serialize(null), false);
assert.equal(transform.serialize(undefined), false);
}
assert.equal(transform.serialize(null, {}), false);
assert.equal(transform.serialize(undefined, {}), false);

assert.equal(transform.serialize(true), true);
assert.equal(transform.serialize(false), false);
Expand All @@ -29,19 +24,14 @@ test("#serialize", function(assert) {
test("#deserialize", function(assert) {
var transform = new DS.BooleanTransform();

if (isEnabled('ds-boolean-transform-allow-null')) {
assert.equal(transform.deserialize(null, { allowNull: true }), null);
assert.equal(transform.deserialize(undefined, { allowNull: true }), null);
assert.equal(transform.deserialize(null, { allowNull: true }), null);
assert.equal(transform.deserialize(undefined, { allowNull: true }), null);

assert.equal(transform.deserialize(null, { allowNull: false }), false);
assert.equal(transform.deserialize(undefined, { allowNull: false }), false);
assert.equal(transform.deserialize(null, { allowNull: false }), false);
assert.equal(transform.deserialize(undefined, { allowNull: false }), false);

assert.equal(transform.deserialize(null, {}), false);
assert.equal(transform.deserialize(undefined, {}), false);
} else {
assert.equal(transform.deserialize(null), false);
assert.equal(transform.deserialize(undefined), false);
}
assert.equal(transform.deserialize(null, {}), false);
assert.equal(transform.deserialize(undefined, {}), false);

assert.equal(transform.deserialize(true), true);
assert.equal(transform.deserialize(false), false);
Expand Down

0 comments on commit a43b450

Please sign in to comment.