mirror of
				https://github.com/tmux-plugins/tmux-resurrect.git
				synced 2025-11-04 00:46:04 +00:00 
			
		
		
		
	Resurrect restore test and updates
This commit is contained in:
		
							
								
								
									
										21
									
								
								tests/fixtures/restore_file.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tests/fixtures/restore_file.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					pane	0	0	:bash	1	:*	0	:/tmp	1	bash	:
 | 
				
			||||||
 | 
					pane	blue	0	:vim	0	: 	0	:/tmp	1	vim	:vim foo.txt
 | 
				
			||||||
 | 
					pane	blue	1	:man	0	:-	0	:/tmp	0	bash	:
 | 
				
			||||||
 | 
					pane	blue	1	:man	0	:-	1	:/usr/share/man	1	man	:man echo
 | 
				
			||||||
 | 
					pane	blue	2	:bash	1	:*	0	:/tmp	1	bash	:
 | 
				
			||||||
 | 
					pane	red	0	:bash	0	: 	0	:/tmp	1	bash	:
 | 
				
			||||||
 | 
					pane	red	1	:bash	0	:-	0	:/tmp	0	bash	:
 | 
				
			||||||
 | 
					pane	red	1	:bash	0	:-	1	:/tmp	0	bash	:
 | 
				
			||||||
 | 
					pane	red	1	:bash	0	:-	2	:/tmp	1	bash	:
 | 
				
			||||||
 | 
					pane	red	2	:bash	1	:*	0	:/tmp	0	bash	:
 | 
				
			||||||
 | 
					pane	red	2	:bash	1	:*	1	:/tmp	1	bash	:
 | 
				
			||||||
 | 
					pane	yellow	0	:bash	1	:*	0	:/tmp/bar	1	bash	:
 | 
				
			||||||
 | 
					window	0	0	1	:*	ce9e,200x49,0,0,1
 | 
				
			||||||
 | 
					window	blue	0	0	: 	ce9f,200x49,0,0,2
 | 
				
			||||||
 | 
					window	blue	1	0	:-	178b,200x49,0,0{100x49,0,0,3,99x49,101,0,4}
 | 
				
			||||||
 | 
					window	blue	2	1	:*	cea2,200x49,0,0,5
 | 
				
			||||||
 | 
					window	red	0	0	: 	cea3,200x49,0,0,6
 | 
				
			||||||
 | 
					window	red	1	0	:-	135b,200x49,0,0[200x24,0,0,7,200x24,0,25{100x24,0,25,8,99x24,101,25,9}]
 | 
				
			||||||
 | 
					window	red	2	1	:*	db81,200x49,0,0[200x24,0,0,10,200x24,0,25,11]
 | 
				
			||||||
 | 
					window	yellow	0	1	:*	6781,200x49,0,0,12
 | 
				
			||||||
 | 
					state	yellow	blue
 | 
				
			||||||
@@ -53,3 +53,13 @@ proc start_resurrect_save {} {
 | 
				
			|||||||
  send ""
 | 
					  send ""
 | 
				
			||||||
  sleep 5
 | 
					  sleep 5
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					proc start_resurrect_restore {} {
 | 
				
			||||||
 | 
					  send ""
 | 
				
			||||||
 | 
					  sleep 10
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					proc clear_screen_for_window {target} {
 | 
				
			||||||
 | 
					  send "tmux send-keys -t $target C-l\r"
 | 
				
			||||||
 | 
					  sleep 0.2
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								tests/helpers/restore_and_save_tmux_test_environment.exp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								tests/helpers/restore_and_save_tmux_test_environment.exp
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env expect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source "./tests/helpers/expect_helpers.exp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					expect_setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					spawn tmux
 | 
				
			||||||
 | 
					# delay with sleep to compensate for tmux starting time
 | 
				
			||||||
 | 
					sleep 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start_resurrect_restore
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# delete all existing resurrect save files
 | 
				
			||||||
 | 
					run_shell_command "rm ~/.tmux/resurrect/*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start_resurrect_save
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					run_shell_command "tmux kill-server"
 | 
				
			||||||
@@ -6,7 +6,13 @@ install_tmux_resurrect_helper() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# we want "fixed" dimensions no matter the size of real display
 | 
					# we want "fixed" dimensions no matter the size of real display
 | 
				
			||||||
set_screen_dimensions() {
 | 
					set_screen_dimensions_helper() {
 | 
				
			||||||
	stty cols 200
 | 
						stty cols 200
 | 
				
			||||||
	stty rows 50
 | 
						stty rows 50
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					last_save_file_differs_helper() {
 | 
				
			||||||
 | 
						local original_file="$1"
 | 
				
			||||||
 | 
						diff "$original_file" "${HOME}/.tmux/resurrect/last"
 | 
				
			||||||
 | 
						[ $? -ne 0 ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								tests/test_resurrect_restore.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								tests/test_resurrect_restore.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source $CURRENT_DIR/helpers/helpers.sh
 | 
				
			||||||
 | 
					source $CURRENT_DIR/helpers/resurrect_helpers.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setup_file_for_restore() {
 | 
				
			||||||
 | 
						mkdir -p ~/.tmux/resurrect/
 | 
				
			||||||
 | 
						cp tests/fixtures/restore_file.txt "${HOME}/.tmux/resurrect/restore_file.txt"
 | 
				
			||||||
 | 
						ln -sf restore_file.txt "${HOME}/.tmux/resurrect/last"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					restore_tmux_environment_and_save_again() {
 | 
				
			||||||
 | 
						set_tmux_conf_helper<<-HERE
 | 
				
			||||||
 | 
						run-shell '~/.tmux/plugins/tmux-resurrect/resurrect.tmux'
 | 
				
			||||||
 | 
						HERE
 | 
				
			||||||
 | 
						set_screen_dimensions_helper
 | 
				
			||||||
 | 
						$CURRENT_DIR/helpers/restore_and_save_tmux_test_environment.exp
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main() {
 | 
				
			||||||
 | 
						install_tmux_resurrect_helper
 | 
				
			||||||
 | 
						setup_file_for_restore
 | 
				
			||||||
 | 
						restore_tmux_environment_and_save_again
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if last_save_file_differs_helper "tests/fixtures/restore_file.txt"; then
 | 
				
			||||||
 | 
							fail_helper "Saved file not correct after restore"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						exit_helper
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					main
 | 
				
			||||||
@@ -9,22 +9,16 @@ create_tmux_test_environment_and_save() {
 | 
				
			|||||||
	set_tmux_conf_helper<<-HERE
 | 
						set_tmux_conf_helper<<-HERE
 | 
				
			||||||
	run-shell '~/.tmux/plugins/tmux-resurrect/resurrect.tmux'
 | 
						run-shell '~/.tmux/plugins/tmux-resurrect/resurrect.tmux'
 | 
				
			||||||
	HERE
 | 
						HERE
 | 
				
			||||||
 | 
						set_screen_dimensions_helper
 | 
				
			||||||
	set_screen_dimensions
 | 
					 | 
				
			||||||
	$CURRENT_DIR/helpers/create_and_save_tmux_test_environment.exp
 | 
						$CURRENT_DIR/helpers/create_and_save_tmux_test_environment.exp
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
last_save_file_incorrect() {
 | 
					 | 
				
			||||||
	diff tests/fixtures/save_file.txt "${HOME}/.tmux/resurrect/last"
 | 
					 | 
				
			||||||
	[ $? -ne 0 ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
main() {
 | 
					main() {
 | 
				
			||||||
	install_tmux_resurrect_helper
 | 
						install_tmux_resurrect_helper
 | 
				
			||||||
	create_tmux_test_environment_and_save
 | 
						create_tmux_test_environment_and_save
 | 
				
			||||||
	if last_save_file_incorrect; then
 | 
					
 | 
				
			||||||
		fail_helper "Saved file not correct"
 | 
						if last_save_file_differs_helper "tests/fixtures/save_file.txt"; then
 | 
				
			||||||
		exit_helper
 | 
							fail_helper "Saved file not correct (initial save)"
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	exit_helper
 | 
						exit_helper
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user