mirror of
				https://github.com/Burnett01/rsync-deployments.git
				synced 2025-11-04 09:29:04 +01:00 
			
		
		
		
	Add Bats tests and workflow for entrypoint.sh
This commit is contained in:
		
							parent
							
								
									33214bd98b
								
							
						
					
					
						commit
						55a5868901
					
				
					 1 changed files with 87 additions and 0 deletions
				
			
		
							
								
								
									
										87
									
								
								test/entrypoint.bats
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								test/entrypoint.bats
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
#!/usr/bin/env bats
 | 
			
		||||
 | 
			
		||||
setup() {
 | 
			
		||||
    # Create a dummy ssh agent and agent-add for sourcing
 | 
			
		||||
    echo 'echo "agent started"' > agent-start
 | 
			
		||||
    echo 'echo "key added"' > agent-add
 | 
			
		||||
    chmod +x agent-start agent-add
 | 
			
		||||
 | 
			
		||||
    # Create a dummy rsync to capture its arguments
 | 
			
		||||
    echo 'echo "rsync $@"' > rsync
 | 
			
		||||
    chmod +x rsync
 | 
			
		||||
 | 
			
		||||
    PATH="$PWD:$PATH"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
teardown() {
 | 
			
		||||
    rm -f agent-start agent-add rsync
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@test "fails if INPUT_REMOTE_PATH is empty" {
 | 
			
		||||
    export INPUT_REMOTE_PATH=" "
 | 
			
		||||
    run ./entrypoint.sh
 | 
			
		||||
    [ "$status" -eq 1 ]
 | 
			
		||||
    [[ "${output}" == *"can not be empty"* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@test "runs agent-start and agent-add" {
 | 
			
		||||
    export INPUT_REMOTE_PATH="some/remote/path"
 | 
			
		||||
    export INPUT_REMOTE_KEY="dummy"
 | 
			
		||||
    export INPUT_REMOTE_KEY_PASS="dummy"
 | 
			
		||||
    export GITHUB_ACTION="dummy"
 | 
			
		||||
    export INPUT_LEGACY_ALLOW_RSA_HOSTKEYS="false"
 | 
			
		||||
    export INPUT_SWITCHES=""
 | 
			
		||||
    export INPUT_REMOTE_PORT="22"
 | 
			
		||||
    export INPUT_RSH=""
 | 
			
		||||
    export INPUT_PATH=""
 | 
			
		||||
    export INPUT_REMOTE_USER="user"
 | 
			
		||||
    export INPUT_REMOTE_HOST="host"
 | 
			
		||||
    export GITHUB_WORKSPACE="/tmp"
 | 
			
		||||
    export DSN="user@host"
 | 
			
		||||
    export LOCAL_PATH="/tmp/"
 | 
			
		||||
    export INPUT_REMOTE_PATH="remote/"
 | 
			
		||||
 | 
			
		||||
    run ./entrypoint.sh
 | 
			
		||||
    [[ "${output}" == *"agent started"* ]]
 | 
			
		||||
    [[ "${output}" == *"key added"* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@test "includes legacy RSA switches when allowed" {
 | 
			
		||||
    export INPUT_LEGACY_ALLOW_RSA_HOSTKEYS="true"
 | 
			
		||||
    export INPUT_REMOTE_PATH="remote/"
 | 
			
		||||
    export INPUT_REMOTE_KEY="dummy"
 | 
			
		||||
    export INPUT_REMOTE_KEY_PASS="dummy"
 | 
			
		||||
    export GITHUB_ACTION="dummy"
 | 
			
		||||
    export INPUT_SWITCHES="-avz"
 | 
			
		||||
    export INPUT_REMOTE_PORT="22"
 | 
			
		||||
    export INPUT_RSH=""
 | 
			
		||||
    export INPUT_PATH=""
 | 
			
		||||
    export INPUT_REMOTE_USER="user"
 | 
			
		||||
    export INPUT_REMOTE_HOST="host"
 | 
			
		||||
    export GITHUB_WORKSPACE="/tmp"
 | 
			
		||||
    export DSN="user@host"
 | 
			
		||||
    export LOCAL_PATH="/tmp/"
 | 
			
		||||
 | 
			
		||||
    run ./entrypoint.sh
 | 
			
		||||
    [[ "${output}" == *"HostKeyAlgorithms=+ssh-rsa"* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@test "does not include legacy RSA switches when not allowed" {
 | 
			
		||||
    export INPUT_LEGACY_ALLOW_RSA_HOSTKEYS="false"
 | 
			
		||||
    export INPUT_REMOTE_PATH="remote/"
 | 
			
		||||
    export INPUT_REMOTE_KEY="dummy"
 | 
			
		||||
    export INPUT_REMOTE_KEY_PASS="dummy"
 | 
			
		||||
    export GITHUB_ACTION="dummy"
 | 
			
		||||
    export INPUT_SWITCHES="-avz"
 | 
			
		||||
    export INPUT_REMOTE_PORT="22"
 | 
			
		||||
    export INPUT_RSH=""
 | 
			
		||||
    export INPUT_PATH=""
 | 
			
		||||
    export INPUT_REMOTE_USER="user"
 | 
			
		||||
    export INPUT_REMOTE_HOST="host"
 | 
			
		||||
    export GITHUB_WORKSPACE="/tmp"
 | 
			
		||||
    export DSN="user@host"
 | 
			
		||||
    export LOCAL_PATH="/tmp/"
 | 
			
		||||
 | 
			
		||||
    run ./entrypoint.sh
 | 
			
		||||
    [[ "${output}" != *"HostKeyAlgorithms=+ssh-rsa"* ]]
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in a new issue