extern crate terragrate;
use std::fs;
use terragrate::migration::Migration;
use terragrate::state::State;
pub fn load_file(file_name: &str) -> String {
let content = fs::read_to_string(file_name).unwrap();
content
}
#[test]
fn test_executes_migration_correct_commands() {
let migration = Migration::from_file("fixtures/migrations/complex.json").unwrap();
let state = State::from_file("fixtures/state/full").unwrap();
let expected_commands = load_file("fixtures/output/complex_full_commands");
let (_, commands) = migration.apply(&state);
assert_eq!(expected_commands, commands.to_string());
}
#[test]
fn test_executes_migration_correct_state() {
let migration = Migration::from_file("fixtures/migrations/complex.json").unwrap();
let state = State::from_file("fixtures/state/full").unwrap();
let expected_state = load_file("fixtures/output/complex_full_state");
let (result, _) = migration.apply(&state);
assert_eq!(expected_state, result.to_string());
}