mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	dropdown_list_widget: Add basic tests.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							c76648c3d4
						
					
				
				
					commit
					6528226a80
				
			
							
								
								
									
										47
									
								
								frontend_tests/node_tests/dropdown_list_widget.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								frontend_tests/node_tests/dropdown_list_widget.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
zrequire('dropdown_list_widget');
 | 
			
		||||
zrequire('scroll_util');
 | 
			
		||||
set_global('$', global.make_zjquery());
 | 
			
		||||
 | 
			
		||||
const noop = () => {};
 | 
			
		||||
const _list_render = {
 | 
			
		||||
    create: () => {
 | 
			
		||||
        return { init: noop };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
set_global('list_render', _list_render);
 | 
			
		||||
 | 
			
		||||
run_test('basic_functions', () => {
 | 
			
		||||
    let updated_value;
 | 
			
		||||
    const opts = {
 | 
			
		||||
        setting_name: 'my_setting',
 | 
			
		||||
        data: ['one', 'two', 'three'].map(x => ({name: x, value: x})),
 | 
			
		||||
        value: 'one',
 | 
			
		||||
        on_update: (val) => { updated_value = val; },
 | 
			
		||||
        default_text: i18n.t("not set"),
 | 
			
		||||
        render_text: (text) => `rendered: ${text}`,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const input_group = $(".input_group");
 | 
			
		||||
    const reset_button = $('.dropdown_list_reset_button');
 | 
			
		||||
    input_group.set_find_results('.dropdown_list_reset_button', reset_button);
 | 
			
		||||
    $("#my_setting_widget #my_setting_name").closest = () => input_group;
 | 
			
		||||
    const $widget = $("#my_setting_widget #my_setting_name");
 | 
			
		||||
 | 
			
		||||
    const widget = dropdown_list_widget(opts);
 | 
			
		||||
 | 
			
		||||
    assert.equal(widget.value(), 'one');
 | 
			
		||||
    assert.equal(updated_value, undefined);  // We haven't 'updated' the widget yet.
 | 
			
		||||
    assert(reset_button.visible());
 | 
			
		||||
 | 
			
		||||
    widget.update('two');
 | 
			
		||||
    assert.equal($widget.text(), 'rendered: two');
 | 
			
		||||
    assert.equal(widget.value(), 'two');
 | 
			
		||||
    assert.equal(updated_value, 'two');
 | 
			
		||||
    assert(reset_button.visible());
 | 
			
		||||
 | 
			
		||||
    widget.update(null);
 | 
			
		||||
    assert.equal($widget.text(), 'translated: not set');
 | 
			
		||||
    assert.equal(widget.value(), '');
 | 
			
		||||
    assert.equal(updated_value, null);
 | 
			
		||||
    assert(!reset_button.visible());
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user