@@ -4,27 +4,24 @@ import (
44 "os"
55 "path/filepath"
66 "testing"
7+
8+ "github.com/stretchr/testify/assert"
9+ "github.com/stretchr/testify/require"
710)
811
912func TestKey (t * testing.T ) {
1013 k1 := Key ("/a/b.tf" , "aws_instance.web" , "aws-gp3-volumes" )
1114 k2 := Key ("/a/b.tf" , "aws_instance.web" , "aws-gp3-volumes" )
1215 k3 := Key ("/a/c.tf" , "aws_instance.web" , "aws-gp3-volumes" )
1316
14- if k1 != k2 {
15- t .Fatal ("identical inputs should produce identical keys" )
16- }
17- if k1 == k3 {
18- t .Fatal ("different inputs should produce different keys" )
19- }
17+ assert .Equal (t , k1 , k2 , "identical inputs should produce identical keys" )
18+ assert .NotEqual (t , k1 , k3 , "different inputs should produce different keys" )
2019}
2120
2221func TestStoreAddAndIsIgnored (t * testing.T ) {
2322 path := filepath .Join (t .TempDir (), "ignores.json" )
2423 s , err := NewStoreWithPath (path )
25- if err != nil {
26- t .Fatal (err )
27- }
24+ require .NoError (t , err )
2825
2926 tests := []struct {
3027 name string
@@ -82,13 +79,10 @@ func TestStoreAddAndIsIgnored(t *testing.T) {
8279 t .Run (tt .name , func (t * testing.T ) {
8380 // Fresh store per test case.
8481 s .ignores = make (map [string ]Entry )
85- if err := s .Add (tt .addPath , tt .addRes , tt .addSlug ); err != nil {
86- t .Fatal (err )
87- }
82+ err := s .Add (tt .addPath , tt .addRes , tt .addSlug )
83+ require .NoError (t , err )
8884 got := s .IsIgnored (tt .queryP , tt .queryR , tt .queryS )
89- if got != tt .expected {
90- t .Errorf ("IsIgnored(%q, %q, %q) = %v, want %v" , tt .queryP , tt .queryR , tt .queryS , got , tt .expected )
91- }
85+ assert .Equal (t , tt .expected , got )
9286 })
9387 }
9488}
@@ -97,70 +91,47 @@ func TestStorePersistence(t *testing.T) {
9791 path := filepath .Join (t .TempDir (), "ignores.json" )
9892
9993 s1 , err := NewStoreWithPath (path )
100- if err != nil {
101- t .Fatal (err )
102- }
103- if err := s1 .Add ("/a/b.tf" , "aws_instance.web" , "slug1" ); err != nil {
104- t .Fatal (err )
105- }
94+ require .NoError (t , err )
95+ err = s1 .Add ("/a/b.tf" , "aws_instance.web" , "slug1" )
96+ require .NoError (t , err )
10697
10798 // Load a new store from the same file.
10899 s2 , err := NewStoreWithPath (path )
109- if err != nil {
110- t .Fatal (err )
111- }
112- if ! s2 .IsIgnored ("/a/b.tf" , "aws_instance.web" , "slug1" ) {
113- t .Fatal ("expected ignore to persist across store instances" )
114- }
100+ require .NoError (t , err )
101+ assert .True (t , s2 .IsIgnored ("/a/b.tf" , "aws_instance.web" , "slug1" ), "expected ignore to persist across store instances" )
115102}
116103
117104func TestStoreRemove (t * testing.T ) {
118105 path := filepath .Join (t .TempDir (), "ignores.json" )
119106 s , err := NewStoreWithPath (path )
120- if err != nil {
121- t .Fatal (err )
122- }
107+ require .NoError (t , err )
123108
124- if err := s .Add ("/a/b.tf" , "res" , "slug" ); err != nil {
125- t .Fatal (err )
126- }
127- if ! s .IsIgnored ("/a/b.tf" , "res" , "slug" ) {
128- t .Fatal ("expected ignored after add" )
129- }
109+ err = s .Add ("/a/b.tf" , "res" , "slug" )
110+ require .NoError (t , err )
111+ assert .True (t , s .IsIgnored ("/a/b.tf" , "res" , "slug" ), "expected ignored after add" )
130112
131113 key := Key ("/a/b.tf" , "res" , "slug" )
132- if err := s .Remove (key ); err != nil {
133- t .Fatal (err )
134- }
135- if s .IsIgnored ("/a/b.tf" , "res" , "slug" ) {
136- t .Fatal ("expected not ignored after remove" )
137- }
114+ err = s .Remove (key )
115+ require .NoError (t , err )
116+ assert .False (t , s .IsIgnored ("/a/b.tf" , "res" , "slug" ), "expected not ignored after remove" )
138117}
139118
140119func TestNewStoreMissingFile (t * testing.T ) {
141120 path := filepath .Join (t .TempDir (), "does-not-exist" , "ignores.json" )
142121 s , err := NewStoreWithPath (path )
143- if err != nil {
144- t .Fatal ("missing file should not error" , err )
145- }
146- if s .IsIgnored ("/a" , "b" , "c" ) {
147- t .Fatal ("empty store should not match anything" )
148- }
122+ require .NoError (t , err , "missing file should not error" )
123+ assert .False (t , s .IsIgnored ("/a" , "b" , "c" ), "empty store should not match anything" )
149124}
150125
151126func TestNewStoreEnvOverride (t * testing.T ) {
152127 path := filepath .Join (t .TempDir (), "custom-ignores.json" )
153128 t .Setenv ("INFRACOST_IGNORES_FILE" , path )
154129
155130 s , err := NewStore ()
156- if err != nil {
157- t .Fatal (err )
158- }
159- if err := s .Add ("/a" , "b" , "c" ); err != nil {
160- t .Fatal (err )
161- }
131+ require .NoError (t , err )
132+ err = s .Add ("/a" , "b" , "c" )
133+ require .NoError (t , err )
162134
163- if _ , err := os .Stat (path ); err != nil {
164- t .Fatalf ("expected file at env override path: %v" , err )
165- }
135+ _ , err = os .Stat (path )
136+ require .NoError (t , err , "expected file at env override path" )
166137}
0 commit comments