mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const {strict: assert} = require("assert");
 | 
						|
 | 
						|
const {mock_esm, zrequire} = require("../zjsunit/namespace");
 | 
						|
const {run_test} = require("../zjsunit/test");
 | 
						|
 | 
						|
const input_pill = mock_esm("../../static/js/input_pill");
 | 
						|
 | 
						|
const search_pill = zrequire("search_pill");
 | 
						|
 | 
						|
const is_starred_item = {
 | 
						|
    display_value: "is:starred",
 | 
						|
    description_html: "starred messages",
 | 
						|
};
 | 
						|
 | 
						|
const is_private_item = {
 | 
						|
    display_value: "is:private",
 | 
						|
    description_html: "private messages",
 | 
						|
};
 | 
						|
 | 
						|
run_test("create_item", () => {
 | 
						|
    function test_create_item(search_string, current_items, expected_item) {
 | 
						|
        const item = search_pill.create_item_from_search_string(search_string, current_items);
 | 
						|
        assert.deepEqual(item, expected_item);
 | 
						|
    }
 | 
						|
 | 
						|
    test_create_item("is:starred", [], is_starred_item);
 | 
						|
});
 | 
						|
 | 
						|
run_test("get_search_string", () => {
 | 
						|
    assert.equal(search_pill.get_search_string_from_item(is_starred_item), "is:starred");
 | 
						|
});
 | 
						|
 | 
						|
run_test("append", () => {
 | 
						|
    let appended;
 | 
						|
    let cleared;
 | 
						|
 | 
						|
    function fake_append(search_string) {
 | 
						|
        appended = true;
 | 
						|
        assert.equal(search_string, is_starred_item.display_value);
 | 
						|
    }
 | 
						|
 | 
						|
    function fake_clear() {
 | 
						|
        cleared = true;
 | 
						|
    }
 | 
						|
 | 
						|
    const pill_widget = {
 | 
						|
        appendValue: fake_append,
 | 
						|
        clear_text: fake_clear,
 | 
						|
    };
 | 
						|
 | 
						|
    search_pill.append_search_string(is_starred_item.display_value, pill_widget);
 | 
						|
 | 
						|
    assert.ok(appended);
 | 
						|
    assert.ok(cleared);
 | 
						|
});
 | 
						|
 | 
						|
run_test("get_items", () => {
 | 
						|
    const items = [is_starred_item, is_private_item];
 | 
						|
 | 
						|
    const pill_widget = {
 | 
						|
        items() {
 | 
						|
            return items;
 | 
						|
        },
 | 
						|
    };
 | 
						|
 | 
						|
    assert.deepEqual(
 | 
						|
        search_pill.get_search_string_for_current_filter(pill_widget),
 | 
						|
        is_starred_item.display_value + " " + is_private_item.display_value,
 | 
						|
    );
 | 
						|
});
 | 
						|
 | 
						|
run_test("create_pills", ({override}) => {
 | 
						|
    let input_pill_create_called = false;
 | 
						|
 | 
						|
    override(input_pill, "create", () => {
 | 
						|
        input_pill_create_called = true;
 | 
						|
        return {dummy: "dummy"};
 | 
						|
    });
 | 
						|
 | 
						|
    const pills = search_pill.create_pills({});
 | 
						|
    assert.ok(input_pill_create_called);
 | 
						|
    assert.deepEqual(pills, {dummy: "dummy"});
 | 
						|
});
 |