github.com/mg98/scriptup@v0.1.0/pkg/scriptup/up_test.go (about)

     1  package scriptup
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  )
     7  
     8  func TestMigrateUp(t *testing.T) {
     9  	// up --steps=2
    10  	t.Run("2 steps", func(t *testing.T) {
    11  		if err := MigrateUp(testCfg, 2); err != nil {
    12  			t.Fatalf("command failed: %v", err)
    13  		}
    14  		defer os.Remove(testCfg.FileDB)
    15  		defer os.Remove(createdTestFile)
    16  		b, err := os.ReadFile(createdTestFile)
    17  		if err != nil {
    18  			t.Fatalf("migration ineffective: %v", err)
    19  		}
    20  		if string(b) != "hello world\n1\n" {
    21  			t.Fatalf("migration ineffective: file does not have expected contents: %s", string(b))
    22  		}
    23  	})
    24  
    25  	// up
    26  	t.Run("all remaining", func(t *testing.T) {
    27  		if err := MigrateUp(testCfg, -1); err != nil {
    28  			t.Fatalf("command failed: %v", err)
    29  		}
    30  		defer os.Remove(testCfg.FileDB)
    31  		defer os.Remove(createdTestFile)
    32  		b, err := os.ReadFile(createdTestFile)
    33  		if err != nil {
    34  			t.Fatalf("migration ineffective: %v", err)
    35  		}
    36  		if string(b) != "hello world\n1\n2\n3\n" {
    37  			t.Fatalf("migration ineffective: file does not have expected contents: %s", string(b))
    38  		}
    39  	})
    40  }