diff options
author | Toon Claes <toon@gitlab.com> | 2022-08-08 16:58:16 +0300 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2022-08-09 12:34:18 +0300 |
commit | 8b1e96f1fb722a7ea099723717c35e205875f738 (patch) | |
tree | c31b010d8b63c9123f61d4347fa98380aae2ce41 | |
parent | a847bafa7f23bf2dd9852f3959692eaa06df8756 (diff) |
linguist: Convert to table-based test
To make sure test cases are independent from eachother, convert the
existing test cases to table-based tests that set up a repository from
scratch each run.
-rw-r--r-- | internal/gitaly/linguist/language_stats_test.go | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/internal/gitaly/linguist/language_stats_test.go b/internal/gitaly/linguist/language_stats_test.go index 7e8a44d3b..07904769d 100644 --- a/internal/gitaly/linguist/language_stats_test.go +++ b/internal/gitaly/linguist/language_stats_test.go @@ -17,34 +17,50 @@ func TestNewLanguageStats(t *testing.T) { t.Parallel() cfg := testcfg.Build(t) - repoProto, repoPath := gittest.InitRepo(t, cfg, cfg.Storages[0]) - repo := localrepo.NewTestRepo(t, cfg, repoProto) - - t.Run("non-existing cache", func(t *testing.T) { - s, err := newLanguageStats(repo) - require.NoError(t, err) - require.Empty(t, s.Totals) - require.Empty(t, s.ByFile) - }) - t.Run("pre-existing cache", func(t *testing.T) { - s, err := newLanguageStats(repo) - require.NoError(t, err) - - s.Totals["C"] = 555 - require.NoError(t, s.save(repo, "badcafe")) - - require.Equal(t, ByteCountPerLanguage{"C": 555}, s.Totals) - }) + for _, tc := range []struct { + desc string + run func(*testing.T, *localrepo.Repo, string) + }{ + { + desc: "non-existing cache", + run: func(t *testing.T, repo *localrepo.Repo, repoPath string) { + stats, err := newLanguageStats(repo) + require.NoError(t, err) + require.Empty(t, stats.Totals) + require.Empty(t, stats.ByFile) + }, + }, + { + desc: "pre-existing cache", + run: func(t *testing.T, repo *localrepo.Repo, repoPath string) { + stats, err := newLanguageStats(repo) + require.NoError(t, err) - t.Run("corrupt cache", func(t *testing.T) { - require.NoError(t, os.WriteFile(filepath.Join(repoPath, languageStatsFilename), []byte("garbage"), 0o644)) + stats.Totals["C"] = 555 + require.NoError(t, stats.save(repo, "badcafe")) - s, err := newLanguageStats(repo) - require.Errorf(t, err, "new language stats zlib reader: invalid header") - require.Empty(t, s.Totals) - require.Empty(t, s.ByFile) - }) + require.Equal(t, ByteCountPerLanguage{"C": 555}, stats.Totals) + }, + }, + { + desc: "corrupt cache", + run: func(t *testing.T, repo *localrepo.Repo, repoPath string) { + require.NoError(t, os.WriteFile(filepath.Join(repoPath, languageStatsFilename), []byte("garbage"), 0o644)) + + stats, err := newLanguageStats(repo) + require.Errorf(t, err, "new language stats zlib reader: invalid header") + require.Empty(t, stats.Totals) + require.Empty(t, stats.ByFile) + }, + }, + } { + t.Run(tc.desc, func(t *testing.T) { + repoProto, repoPath := gittest.InitRepo(t, cfg, cfg.Storages[0]) + repo := localrepo.NewTestRepo(t, cfg, repoProto) + tc.run(t, repo, repoPath) + }) + } } func TestLanguageStats_add(t *testing.T) { |