github.com/wawandco/oxpecker@v1.5.7-0.20210910201653-5958d4afdd89/tools/soda/fizz/rename_test.go (about)

     1  package fizz
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  )
     7  
     8  func Test_Rename(t *testing.T) {
     9  	r := rename{}
    10  	_, _, err := r.GenerateFizz("rename_something_invalid", []string{})
    11  	if err == nil {
    12  		t.Error("should error but got nil")
    13  	}
    14  }
    15  
    16  func Test_Rename_Table(t *testing.T) {
    17  	r := rename{}
    18  
    19  	t.Run("invalid table renamer", func(t *testing.T) {
    20  		_, _, err := r.GenerateFizz("rename_table_users", []string{})
    21  		if err == nil {
    22  			t.Error("should error but got nil")
    23  		}
    24  	})
    25  
    26  	t.Run("normal table renamer", func(t *testing.T) {
    27  		up, down, err := r.GenerateFizz("rename_table_users_to_employees", []string{})
    28  		if err != nil {
    29  			t.Error("should be nil but got error")
    30  		}
    31  
    32  		expectedUp := `rename_table("users", "employees")`
    33  		expectedDown := `rename_table("employees", "users")`
    34  
    35  		if up != expectedUp {
    36  			t.Errorf("expected %v but got %v", expectedUp, up)
    37  		}
    38  
    39  		if down != expectedDown {
    40  			t.Errorf("expected %v but got %v", expectedDown, down)
    41  		}
    42  	})
    43  }
    44  
    45  func Test_Rename_Column(t *testing.T) {
    46  	r := rename{}
    47  
    48  	t.Run("invalid column renamer", func(t *testing.T) {
    49  		_, _, err := r.GenerateFizz("rename_column_description_from_templates", []string{})
    50  		if err == nil {
    51  			t.Error("should error but got nil")
    52  		}
    53  	})
    54  
    55  	t.Run("normal column renamer", func(t *testing.T) {
    56  		up, down, err := r.GenerateFizz("rename_column_landing_to_html_from_templates", []string{})
    57  		if err != nil {
    58  			t.Error("should be nil but got error")
    59  		}
    60  
    61  		expectedUp := `rename_column("templates", "landing", "html")`
    62  		expectedDown := `rename_column("templates", "html", "landing")`
    63  
    64  		if up != expectedUp {
    65  			t.Errorf("expected %v but got %v", expectedUp, up)
    66  		}
    67  
    68  		if down != expectedDown {
    69  			t.Errorf("expected %v but got %v", expectedDown, down)
    70  		}
    71  	})
    72  }
    73  
    74  func Test_Rename_Index(t *testing.T) {
    75  	r := rename{}
    76  
    77  	t.Run("invalid index renamer", func(t *testing.T) {
    78  		_, _, err := r.GenerateFizz("rename_index_idx_from_templates", []string{})
    79  		if err == nil {
    80  			t.Error("should error but got nil")
    81  		}
    82  	})
    83  
    84  	t.Run("normal index renamer", func(t *testing.T) {
    85  		up, down, err := r.GenerateFizz("rename_index_idx_events_name_to_idx_events_from_events", []string{})
    86  		if err != nil {
    87  			t.Error("should be nil but got error")
    88  		}
    89  
    90  		expectedUp := `rename_index("events", "idx_events_name", "idx_events")`
    91  		expectedDown := `rename_index("events", "idx_events", "idx_events_name")`
    92  
    93  		if up != expectedUp {
    94  			t.Errorf("expected %v but got %v", expectedUp, up)
    95  		}
    96  
    97  		if down != expectedDown {
    98  			t.Errorf("expected %v but got %v", expectedDown, down)
    99  		}
   100  	})
   101  }
   102  
   103  func Test_Rename_Matches(t *testing.T) {
   104  	r := rename{}
   105  
   106  	cases := []struct {
   107  		name     string
   108  		expected bool
   109  	}{
   110  		{name: "rena", expected: false},
   111  		{name: "rename", expected: true},
   112  		{name: "rename_table", expected: true},
   113  		{name: "rename_col", expected: true},
   114  		{name: "rename_ind", expected: true},
   115  	}
   116  
   117  	for _, c := range cases {
   118  		matchs := r.match(c.name)
   119  		if matchs != c.expected {
   120  			t.Errorf("expected %v but got %v", c.expected, matchs)
   121  		}
   122  	}
   123  }
   124  
   125  func Test_Rename_Table_Matches(t *testing.T) {
   126  	r := rename{}
   127  
   128  	cases := []struct {
   129  		name     string
   130  		expected error
   131  	}{
   132  		{name: "rename_table", expected: ErrInvalidRenamer},
   133  		{name: "rename_table_users", expected: ErrInvalidRenamer},
   134  		{name: "rename_table_users_to_employees", expected: nil},
   135  	}
   136  
   137  	for _, c := range cases {
   138  		_, _, err := r.GenerateFizz(c.name, []string{})
   139  		if !errors.Is(err, c.expected) {
   140  			t.Errorf("expected %v but got %v", c.expected, err)
   141  		}
   142  	}
   143  }
   144  
   145  func Test_Rename_Column_Matches(t *testing.T) {
   146  	r := rename{}
   147  
   148  	cases := []struct {
   149  		name     string
   150  		expected error
   151  	}{
   152  		{name: "rename_column", expected: ErrInvalidRenamer},
   153  		{name: "rename_column_description", expected: ErrInvalidRenamer},
   154  		{name: "rename_column_description_to_summary", expected: ErrInvalidRenamer},
   155  		{name: "rename_column_description_to_summary_from", expected: ErrInvalidRenamer},
   156  		{name: "rename_column_description_to_summary_from_templates", expected: nil},
   157  	}
   158  
   159  	for _, c := range cases {
   160  		_, _, err := r.GenerateFizz(c.name, []string{})
   161  		if !errors.Is(err, c.expected) {
   162  			t.Errorf("expected %v but got %v", c.expected, err)
   163  		}
   164  	}
   165  }