filter: Remove is_exactly().

Previously, is_exactly() had already been repalced with can_bucket_by().
This commit removes is_exactly() and replaces its usage in our tests
with can_bucket_by().
This commit is contained in:
Rohitt Vashishtha
2020-01-16 19:31:27 +05:30
committed by Tim Abbott
parent c7948a7960
commit 1d72ea2fd5
2 changed files with 25 additions and 43 deletions

View File

@@ -86,7 +86,8 @@ run_test('basics', () => {
assert(!filter.contains_only_private_messages()); assert(!filter.contains_only_private_messages());
assert(!filter.allow_use_first_unread_when_narrowing()); assert(!filter.allow_use_first_unread_when_narrowing());
assert(!filter.can_apply_locally()); assert(!filter.can_apply_locally());
assert(!filter.is_exactly('stream')); assert(filter.can_bucket_by('stream'));
assert(filter.can_bucket_by('stream', 'topic'));
// If our only stream operator is negated, then for all intents and purposes, // If our only stream operator is negated, then for all intents and purposes,
// we don't consider ourselves to have a stream operator, because we don't // we don't consider ourselves to have a stream operator, because we don't
@@ -392,7 +393,7 @@ run_test('new_style_operators', () => {
const filter = new Filter(operators); const filter = new Filter(operators);
assert.deepEqual(filter.operands('stream'), ['foo']); assert.deepEqual(filter.operands('stream'), ['foo']);
assert(filter.is_exactly('stream')); assert(filter.can_bucket_by('stream'));
}); });
run_test('public_operators', () => { run_test('public_operators', () => {
@@ -404,7 +405,7 @@ run_test('public_operators', () => {
let filter = new Filter(operators); let filter = new Filter(operators);
assert_same_operators(filter.public_operators(), operators); assert_same_operators(filter.public_operators(), operators);
assert(!filter.is_exactly('stream')); assert(filter.can_bucket_by('stream'));
global.page_params.narrow_stream = 'default'; global.page_params.narrow_stream = 'default';
operators = [ operators = [
@@ -423,7 +424,7 @@ run_test('redundancies', () => {
{ operator: 'is', operand: 'private' }, { operator: 'is', operand: 'private' },
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert(filter.is_exactly('pm-with')); assert(filter.can_bucket_by('pm-with'));
terms = [ terms = [
{ operator: 'pm-with', { operator: 'pm-with',
@@ -433,7 +434,7 @@ run_test('redundancies', () => {
{ operator: 'is', operand: 'private' }, { operator: 'is', operand: 'private' },
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert(filter.is_exactly('is-private', 'not-pm-with')); assert(filter.can_bucket_by('is-private', 'not-pm-with'));
}); });
run_test('canonicalizations', () => { run_test('canonicalizations', () => {
@@ -1025,14 +1026,14 @@ run_test('describe', () => {
assert.equal(Filter.describe(narrow), string); assert.equal(Filter.describe(narrow), string);
}); });
run_test('is_functions', () => { run_test('can_bucket_by', () => {
let terms = [ let terms = [
{operator: 'stream', operand: 'My Stream'}, {operator: 'stream', operand: 'My Stream'},
]; ];
let filter = new Filter(terms); let filter = new Filter(terms);
assert.equal(filter.is_exactly('stream'), true); assert.equal(filter.can_bucket_by('stream'), true);
assert.equal(filter.is_exactly('stream', 'topic'), false); assert.equal(filter.can_bucket_by('stream', 'topic'), false);
assert.equal(filter.is_exactly('pm-with'), false); assert.equal(filter.can_bucket_by('pm-with'), false);
terms = [ terms = [
// try a non-orthodox ordering // try a non-orthodox ordering
@@ -1042,9 +1043,6 @@ run_test('is_functions', () => {
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.can_bucket_by('stream'), true); assert.equal(filter.can_bucket_by('stream'), true);
assert.equal(filter.can_bucket_by('stream', 'topic'), true); assert.equal(filter.can_bucket_by('stream', 'topic'), true);
assert.equal(filter.is_exactly('stream'), false);
assert.equal(filter.is_exactly('stream', 'topic'), true);
assert.equal(filter.is_exactly('pm-with'), false);
assert.equal(filter.can_bucket_by('pm-with'), false); assert.equal(filter.can_bucket_by('pm-with'), false);
terms = [ terms = [
@@ -1054,49 +1052,45 @@ run_test('is_functions', () => {
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.can_bucket_by('stream'), false); assert.equal(filter.can_bucket_by('stream'), false);
assert.equal(filter.can_bucket_by('stream', 'topic'), false); assert.equal(filter.can_bucket_by('stream', 'topic'), false);
assert.equal(filter.is_exactly('stream'), false); assert.equal(filter.can_bucket_by('pm-with'), false);
assert.equal(filter.is_exactly('stream', 'topic'), false);
assert.equal(filter.is_exactly('pm-with'), false);
terms = [ terms = [
{operator: 'pm-with', operand: 'foo@example.com', negated: true}, {operator: 'pm-with', operand: 'foo@example.com', negated: true},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('stream'), false); assert.equal(filter.can_bucket_by('stream'), false);
assert.equal(filter.is_exactly('stream', 'topic'), false); assert.equal(filter.can_bucket_by('stream', 'topic'), false);
assert.equal(filter.is_exactly('pm-with'), false); assert.equal(filter.can_bucket_by('pm-with'), false);
terms = [ terms = [
{operator: 'pm-with', operand: 'foo@example.com,bar@example.com'}, {operator: 'pm-with', operand: 'foo@example.com,bar@example.com'},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('stream'), false); assert.equal(filter.can_bucket_by('stream'), false);
assert.equal(filter.is_exactly('stream', 'topic'), false); assert.equal(filter.can_bucket_by('stream', 'topic'), false);
assert.equal(filter.is_exactly('pm-with'), true); assert.equal(filter.can_bucket_by('pm-with'), true);
assert.equal(filter.is_exactly('is-mentioned'), false); assert.equal(filter.can_bucket_by('is-mentioned'), false);
assert.equal(filter.is_exactly('is-private'), false); assert.equal(filter.can_bucket_by('is-private'), false);
terms = [ terms = [
{operator: 'is', operand: 'private'}, {operator: 'is', operand: 'private'},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('is-mentioned'), false); assert.equal(filter.can_bucket_by('is-mentioned'), false);
assert.equal(filter.is_exactly('is-private'), true); assert.equal(filter.can_bucket_by('is-private'), true);
terms = [ terms = [
{operator: 'is', operand: 'mentioned'}, {operator: 'is', operand: 'mentioned'},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('is-mentioned'), true); assert.equal(filter.can_bucket_by('is-mentioned'), true);
assert.equal(filter.is_exactly('is-private'), false); assert.equal(filter.can_bucket_by('is-private'), false);
terms = [ terms = [
{operator: 'is', operand: 'mentioned'}, {operator: 'is', operand: 'mentioned'},
{operator: 'is', operand: 'starred'}, {operator: 'is', operand: 'starred'},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('is-mentioned'), false);
assert.equal(filter.is_exactly('is-private'), false);
assert.equal(filter.can_bucket_by('is-mentioned'), true); assert.equal(filter.can_bucket_by('is-mentioned'), true);
assert.equal(filter.can_bucket_by('is-private'), false); assert.equal(filter.can_bucket_by('is-private'), false);
@@ -1109,8 +1103,8 @@ run_test('is_functions', () => {
{operator: 'is', operand: 'mentioned', negated: true}, {operator: 'is', operand: 'mentioned', negated: true},
]; ];
filter = new Filter(terms); filter = new Filter(terms);
assert.equal(filter.is_exactly('is-mentioned'), false); assert.equal(filter.can_bucket_by('is-mentioned'), false);
assert.equal(filter.is_exactly('is-private'), false); assert.equal(filter.can_bucket_by('is-private'), false);
}); });
run_test('term_type', () => { run_test('term_type', () => {

View File

@@ -502,18 +502,6 @@ Filter.prototype = {
return sorted_terms; return sorted_terms;
}, },
is_exactly: function () {
// TODO: in ES6 use spread operator
//
// Examples calls:
// filter.is_exactly('stream', 'topic')
// filter.is_exactly('pm-with')
const wanted_term_types = [].slice.call(arguments);
const term_types = this.sorted_term_types();
return _.isEqual(term_types, wanted_term_types);
},
can_bucket_by: function () { can_bucket_by: function () {
// TODO: in ES6 use spread operator // TODO: in ES6 use spread operator
// //