116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			V
		
	
	
| import os
 | |
| import term
 | |
| 
 | |
| fn test_get_terminal_size() {
 | |
| 	cols, _ := term.get_terminal_size()
 | |
| 	assert cols > 0
 | |
| }
 | |
| 
 | |
| fn test_h_divider() {
 | |
| 	divider := term.h_divider('-')
 | |
| 	assert divider.len > 0
 | |
| 	assert divider[0] == `-`
 | |
| 	assert divider[divider.len - 1] == `-`
 | |
| }
 | |
| 
 | |
| fn test_h_divider_multiple_characters() {
 | |
| 	xdivider := term.h_divider('abc')
 | |
| 	assert xdivider.len > 0
 | |
| 	assert xdivider.contains('abcabc')
 | |
| }
 | |
| 
 | |
| fn test_header() {
 | |
| 	divider := term.h_divider('-')
 | |
| 	term_width := divider.len
 | |
| 	assert term_width > 0
 | |
| 	empty_header := term.header('', '-')
 | |
| 	short_header := term.header('reasonable header', '-')
 | |
| 	very_long_header := term.header(['abc'].repeat(500).join(' '), '-')
 | |
| 	very_long_header_2 := term.header(['abcd'].repeat(500).join(' '), '-')
 | |
| 	/*
 | |
| 	eprintln(divider)
 | |
| 	eprintln(empty_header)
 | |
| 	eprintln(short_header)
 | |
| 	eprintln(term.header('another longer header', '_-/\\'))
 | |
| 	eprintln(term.header('another longer header', '-'))
 | |
| 	eprintln(term.header('short', '-'))
 | |
| 	eprintln(term.header('12345', '-'))
 | |
| 	eprintln(term.header('1234', '-'))
 | |
| 	eprintln(term.header('123', '-'))
 | |
| 	eprintln(term.header('12', '-'))
 | |
| 	eprintln(term.header('1', '-'))
 | |
| 	eprintln(very_long_header)
 | |
| 	eprintln(divider)
 | |
| 	eprintln(very_long_header_2)
 | |
| 	eprintln(term.header(['abcd'].repeat(500).join(' '), '_-/\\'))
 | |
| 	eprintln(term.header(['abcd'].repeat(500).join(' '), '_-//'))
 | |
| 	eprintln(term.header('1', '_-/\\\/'))
 | |
| 	eprintln(term.header('12', '_-/\\\/'))
 | |
| 	eprintln(term.header('123', '_-/\\\/'))
 | |
| 	eprintln(term.header('1234', '_-/\\/\\'))
 | |
| 	eprintln(term.header('', '-'))
 | |
| 	*/
 | |
| 	assert term_width == empty_header.len
 | |
| 	assert term_width == short_header.len
 | |
| 	assert term_width == very_long_header.len
 | |
| 	assert term_width == very_long_header_2.len
 | |
| 	assert term_width == term.header('1234', '_-/\\/\\').len
 | |
| }
 | |
| 
 | |
| fn test_get_cursor_position() ? {
 | |
| 	original_position := term.get_cursor_position() ?
 | |
| 	cursor_position_1 := term.get_cursor_position() ?
 | |
| 	assert original_position.x == cursor_position_1.x
 | |
| 	assert original_position.y == cursor_position_1.y
 | |
| 	//
 | |
| 	term.set_cursor_position(
 | |
| 		x: 10
 | |
| 		y: 11
 | |
| 	)
 | |
| 	cursor_position_2 := term.get_cursor_position() ?
 | |
| 	//
 | |
| 	term.set_cursor_position(
 | |
| 		x: 5
 | |
| 		y: 6
 | |
| 	)
 | |
| 	cursor_position_3 := term.get_cursor_position() ?
 | |
| 	//
 | |
| 	term.set_cursor_position(original_position)
 | |
| 	eprintln('original_position: $original_position')
 | |
| 	eprintln('cursor_position_2: $cursor_position_2')
 | |
| 	eprintln('cursor_position_3: $cursor_position_3')
 | |
| 	// 0,0 is returned on dumb terminals
 | |
| 	if cursor_position_2.x == 0 && cursor_position_2.y == 0 {
 | |
| 		return
 | |
| 	}
 | |
| 	if cursor_position_3.x == 0 && cursor_position_3.y == 0 {
 | |
| 		return
 | |
| 	}
 | |
| 	assert cursor_position_2.x == 10
 | |
| 	assert cursor_position_2.y == 11
 | |
| 	assert cursor_position_3.x == 5
 | |
| 	assert cursor_position_3.y == 6
 | |
| }
 | |
| 
 | |
| fn test_set_terminal_title() {
 | |
| 	// do not change the current terminal title outside of CI:
 | |
| 	if os.getenv('CI') != 'true' {
 | |
| 		return
 | |
| 	}
 | |
| 	title_change := term.set_terminal_title('v is awesome!')
 | |
| 	assert title_change == true
 | |
| }
 | |
| 
 | |
| fn test_strip_ansi() {
 | |
| 	strings := [
 | |
| 		'abc',
 | |
| 		term.bold('abc'),
 | |
| 		term.yellow('abc'),
 | |
| 		term.bold(term.red('abc')),
 | |
| 		term.strikethrough(term.inverse(term.dim(term.bold(term.bright_bg_blue('abc'))))),
 | |
| 	]
 | |
| 	for s in strings {
 | |
| 		assert term.strip_ansi(s) == 'abc'
 | |
| 	}
 | |
| }
 |