#!/usr/bin/env bats load "helpers" setup_file() { echo "Preparing 'simple'" prepare_test "simple" } teardown_file() { echo "Tearing down 'simple'" reset_repo_state } @test "Testflight needs deploying" { cmd check -e testflight } @test "Staging doesn't need deploying" { run cmd check -e staging [ "$status" -eq 1 ] } @test "Record testflight should hash file" { file_hash=$(git hash-object `fixture`/file.yml) cmd record -e testflight grep ${file_hash} $(state "testflight") n_files=$(grep 'file_hash:' $(state "testflight") | wc -l) [ "$n_files" -eq 1 ] } @test "Prepare staging should reset file" { echo "file_new: {}" > `fixture`/file.yml git commit -am 'Update file.yml' cmd prepare -e staging file_hash=$(git hash-object `fixture`/file.yml) grep ${file_hash} $(state "testflight") cmd record -e staging grep ${file_hash} $(state "staging") n_files=$(grep 'file_hash:' $(state "staging") | wc -l) [ "$n_files" -eq 2 ] git checkout . } @test "Recording multiple states should add propagation_queue" { cmd check -e testflight cmd record -e testflight run grep 'propagation_queue' $(state "testflight") [ "$status" -eq 1 ] echo "file_new_1: {}" > `fixture`/file.yml git commit -am 'Update file.yml 1' cmd check -e testflight cmd record -e testflight grep 'propagation_queue' $(state "testflight") } @test "Prepare + record should step through queue" { cmd check -e staging cmd prepare -e staging grep 'file_new' `fixture`/file.yml cmd record -e staging cmd check -e staging cmd prepare -e staging grep 'file_new_1' `fixture`/file.yml cmd record -e staging run cmd check -e staging [ "$status" -eq 2 ] } @test "Reproduce should reset file" { echo "file_reproduce: {}" > `fixture`/file.yml git commit -am 'Update file.yml for reproduction' cmd check -e testflight cmd record -e testflight cmd reproduce -e staging grep 'file_new' `fixture`/file.yml cmd prepare -e staging grep 'file_reproduce' `fixture`/file.yml }