github.com/sudo-bmitch/version-bump@v0.0.0-20240503123857-70b0e3f646dd/internal/lockfile/lockfile_test.go (about)

     1  package lockfile
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  )
     8  
     9  func TestLockfile(t *testing.T) {
    10  	dir := t.TempDir()
    11  	inFile := "../../testdata/ex-lock.jsonl"
    12  	outFile := dir + "/ex-lock.jsonl"
    13  	// load test file
    14  	l, err := LoadFile(inFile)
    15  	if err != nil {
    16  		t.Errorf("failed to load lockfile: %v", err)
    17  		return
    18  	}
    19  	// verify content
    20  	entry, err := l.Get("Test", "X")
    21  	if err != nil {
    22  		t.Errorf("failed to get test/X entry: %v", err)
    23  		return
    24  	}
    25  	if entry.Version != "123" {
    26  		t.Errorf("version mismatch, expected 123, received %s", entry.Version)
    27  	}
    28  	// write file
    29  	err = SaveFile(outFile, l)
    30  	if err != nil {
    31  		t.Errorf("failed to save lockfile: %v", err)
    32  		return
    33  	}
    34  	// verify file contains the same content
    35  	bIn, err := os.ReadFile(inFile)
    36  	if err != nil {
    37  		t.Errorf("failed to read %s: %v", inFile, err)
    38  		return
    39  	}
    40  	bOut, err := os.ReadFile(outFile)
    41  	if err != nil {
    42  		t.Errorf("failed to read %s: %v", outFile, err)
    43  		return
    44  	}
    45  	if !bytes.Equal(bIn, bOut) {
    46  		t.Errorf("output does not match input file %s:\n%s", inFile, bOut)
    47  	}
    48  }