Consider unlimited quotas when counting remaining maps

pull/15577/head
Víctor Velarde 5 years ago
parent fc120eca85
commit 003e843522

@ -25,6 +25,7 @@ Development
- Fix Kepler maps configuration at Maps section that was causing endless reloads ([#15568](https://github.com/CartoDB/cartodb/pull/15568))
- Fix issue that caused data request form to don't include the company name for organization users ([#15554](https://github.com/CartoDB/cartodb/pull/15554))
- Fix "dataset not found" error in geocoding request for non-org users ([#2426](https://github.com/CartoDB/support/issues/2426))
- Consider unlimited quotas when counting remaining maps ([#2163](https://github.com/CartoDB/support/issues/2163))
4.36.0 (2020-03-09)
-------------------

@ -133,11 +133,15 @@ var UserModel = Backbone.Model.extend({
hasRemainingPublicMaps: function () {
if (this.hasPublicMapsLimits()) {
return this.get('public_map_quota') > this.getTotalPublicMapsCount();
return this.hasUnlimitedPublicMaps() || this.get('public_map_quota') > this.getTotalPublicMapsCount();
}
return true;
},
hasUnlimitedPublicMaps: function () {
return this.get('public_map_quota') === null;
},
getTotalPublicMapsCount: function () {
var totalPublicPrivacyMapsCount = this.get('public_privacy_map_count') || 0;
var totalPasswordPrivacyMapsCount = this.get('password_privacy_map_count') || 0;
@ -152,11 +156,15 @@ var UserModel = Backbone.Model.extend({
hasRemainingPrivateMaps: function () {
if (this.hasPrivateMapsLimits()) {
return this.get('private_map_quota') > this.getTotalPrivateMapsCount();
return this.hasUnlimitedPrivateMaps() || this.get('private_map_quota') > this.getTotalPrivateMapsCount();
}
return true;
},
hasUnlimitedPrivateMaps: function () {
return this.get('private_map_quota') === null;
},
getTotalPrivateMapsCount: function () {
return this.get('private_privacy_map_count');
},

@ -157,11 +157,15 @@ const UserModel = Backbone.Model.extend({
hasRemainingPublicMaps: function () {
if (this.hasPublicMapsLimits()) {
return this.get('public_map_quota') > this.getTotalPublicMapsCount();
return this.hasUnlimitedPublicMaps() || this.get('public_map_quota') > this.getTotalPublicMapsCount();
}
return true;
},
hasUnlimitedPublicMaps: function () {
return this.get('public_map_quota') === null;
},
getTotalPublicMapsCount: function () {
var totalPublicPrivacyMapsCount = this.get('public_privacy_map_count') || 0;
var totalPasswordPrivacyMapsCount = this.get('password_privacy_map_count') || 0;
@ -176,11 +180,15 @@ const UserModel = Backbone.Model.extend({
hasRemainingPrivateMaps: function () {
if (this.hasPrivateMapsLimits()) {
return this.get('private_map_quota') > this.getTotalPrivateMapsCount();
return this.hasUnlimitedPrivateMaps() || this.get('private_map_quota') > this.getTotalPrivateMapsCount();
}
return true;
},
hasUnlimitedPrivateMaps: function () {
return this.get('private_map_quota') === null;
},
getTotalPrivateMapsCount: function () {
return this.get('private_privacy_map_count');
},

@ -141,6 +141,48 @@ describe('data/user-model', function () {
});
});
describe('limits', function () {
describe('map', function () {
it('should answer if user has unlimited public maps', function () {
this.model.set('public_map_quota', null);
expect(this.model.hasUnlimitedPublicMaps()).toEqual(true);
this.model.set('public_map_quota', 0);
expect(this.model.hasUnlimitedPublicMaps()).toEqual(false);
this.model.set('public_map_quota', 5);
expect(this.model.hasUnlimitedPublicMaps()).toEqual(false);
});
it('should consider unlimited public map quota when counting remaining public maps', function () {
this.model.set('account_type', 'Free 2020');
this.model.set('public_map_quota', 10);
this.model.set('public_privacy_map_count', 10);
expect(this.model.hasRemainingPublicMaps()).toEqual(false);
this.model.set('public_map_quota', null);
expect(this.model.hasRemainingPublicMaps()).toEqual(true);
});
it('should answer if user has unlimited private maps', function () {
this.model.set('private_map_quota', null);
expect(this.model.hasUnlimitedPrivateMaps()).toEqual(true);
this.model.set('private_map_quota', 0);
expect(this.model.hasUnlimitedPrivateMaps()).toEqual(false);
this.model.set('private_map_quota', 5);
expect(this.model.hasUnlimitedPrivateMaps()).toEqual(false);
});
it('should consider unlimited private map quota when counting remaining private maps', function () {
this.model.set('account_type', 'Free 2020');
this.model.set('private_map_quota', 10);
this.model.set('private_privacy_map_count', 10);
expect(this.model.hasRemainingPrivateMaps()).toEqual(false);
this.model.set('private_map_quota', null);
expect(this.model.hasRemainingPrivateMaps()).toEqual(true);
});
});
});
it('hasFeatureFlagEnabled', function () {
var flagOK = 'test_flag';
var feature_flags = [];

@ -154,6 +154,48 @@ describe('dashboard/data/user-model', function () {
});
});
describe('limits', function () {
describe('map', function () {
it('should answer if user has unlimited public maps', function () {
user.set('public_map_quota', null);
expect(user.hasUnlimitedPublicMaps()).toEqual(true);
user.set('public_map_quota', 0);
expect(user.hasUnlimitedPublicMaps()).toEqual(false);
user.set('public_map_quota', 5);
expect(user.hasUnlimitedPublicMaps()).toEqual(false);
});
it('should consider unlimited public map quota when counting remaining public maps', function () {
user.set('account_type', 'free 2020');
user.set('public_map_quota', 10);
user.set('public_privacy_map_count', 10);
expect(user.hasRemainingPublicMaps()).toEqual(false);
user.set('public_map_quota', null);
expect(user.hasRemainingPublicMaps()).toEqual(true);
});
it('should answer if user has unlimited private maps', function () {
user.set('private_map_quota', null);
expect(user.hasUnlimitedPrivateMaps()).toEqual(true);
user.set('private_map_quota', 0);
expect(user.hasUnlimitedPrivateMaps()).toEqual(false);
user.set('private_map_quota', 5);
expect(user.hasUnlimitedPrivateMaps()).toEqual(false);
});
it('should consider unlimited private map quota when counting remaining private maps', function () {
user.set('account_type', 'free 2020');
user.set('private_map_quota', 10);
user.set('private_privacy_map_count', 10);
expect(user.hasRemainingPrivateMaps()).toEqual(false);
user.set('private_map_quota', null);
expect(user.hasRemainingPrivateMaps()).toEqual(true);
});
});
});
it('hasFeatureFlagEnabled', function () {
var flagOK = 'test_flag';
var feature_flags = [];

Loading…
Cancel
Save