Removed "Subscription" member filter options when Stripe is not connected
no issue - updated the filtering of available filter properties to remove any with the "Subscription" group when Stripe is not connected
This commit is contained in:
parent
8353a7b2dc
commit
4b137105ba
|
@ -126,6 +126,7 @@ class Filter {
|
|||
export default class MembersFilter extends Component {
|
||||
@service feature;
|
||||
@service session;
|
||||
@service settings;
|
||||
|
||||
@tracked filters = A([
|
||||
new Filter({
|
||||
|
@ -142,8 +143,17 @@ export default class MembersFilter extends Component {
|
|||
nextFilterId = 1;
|
||||
|
||||
get availableFilterProperties() {
|
||||
let availableFilters = FILTER_PROPERTIES;
|
||||
|
||||
// exclude any filters that are behind disabled feature flags
|
||||
return FILTER_PROPERTIES.filter(prop => !prop.feature || this.feature[prop.feature]);
|
||||
availableFilters = availableFilters.filter(prop => !prop.feature || this.feature[prop.feature]);
|
||||
|
||||
// exclude subscription filters if Stripe isn't connected
|
||||
if (!this.settings.get('stripeConnectAccountId')) {
|
||||
availableFilters = availableFilters.reject(prop => prop.group === 'Subscription');
|
||||
}
|
||||
|
||||
return availableFilters;
|
||||
}
|
||||
|
||||
get totalFilters() {
|
||||
|
|
|
@ -17,9 +17,11 @@ describe('Acceptance: Members filtering', function () {
|
|||
|
||||
beforeEach(async function () {
|
||||
this.server.loadFixtures('configs');
|
||||
|
||||
enableLabsFlag(this.server, 'membersLastSeenFilter');
|
||||
|
||||
// enable stripe by default
|
||||
this.server.create('setting', {group: 'members', key: 'stripe_connect_account_id', value: 'stripe_connected'});
|
||||
|
||||
let role = this.server.create('role', {name: 'Owner'});
|
||||
this.server.create('user', {roles: [role]});
|
||||
|
||||
|
@ -678,6 +680,27 @@ describe('Acceptance: Members filtering', function () {
|
|||
expect(findAll('[data-test-list="members-list-item"]').length, '# of members after email_count filter')
|
||||
.to.equal(3);
|
||||
});
|
||||
|
||||
it('hides paid filters when stripe isn\'t connected', async function () {
|
||||
// disconnect stripe
|
||||
this.server.db.settings.update({key: 'stripe_connect_account_id'}, {value: null});
|
||||
this.server.createList('member', 10);
|
||||
|
||||
await visit('/members');
|
||||
await click('[data-test-button="members-filter-actions"]');
|
||||
|
||||
expect(
|
||||
find('[data-test-members-filter="0"] [data-test-select="members-filter"] optgroup[label="Subscription"]'),
|
||||
'Subscription option group doesn\'t exist'
|
||||
).to.not.exist;
|
||||
|
||||
const filterOptions = findAll('[data-test-members-filter="0"] [data-test-select="members-filter"] option')
|
||||
.map(option => option.value);
|
||||
|
||||
expect(filterOptions).to.not.include('status');
|
||||
expect(filterOptions).to.not.include('subscriptions.plan_interval');
|
||||
expect(filterOptions).to.not.include('subscriptions.status');
|
||||
});
|
||||
});
|
||||
|
||||
describe('search', function () {
|
||||
|
|
Loading…
Reference in New Issue