Skip to content

Commit a8c90b4

Browse files
authored
tets: test mock generation works (#1029)
1 parent 0ebc6c1 commit a8c90b4

File tree

5 files changed

+52
-68
lines changed

5 files changed

+52
-68
lines changed

.github/workflows/mocks.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Check Mock Generation
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
jobs:
9+
mocks:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout repository
13+
uses: actions/checkout@v3
14+
- name: Install Go
15+
uses: actions/setup-go@v2
16+
with:
17+
go-version: 1.17
18+
- name: Intsall go-mock
19+
run: go install github.com/golang/mock/mockgen@latest
20+
- name: Generate mocks
21+
run: make gen-mocks
22+
- name: Check for uncommited files
23+
run: |
24+
export FILES=$(git ls-files -o -m --directory --exclude-standard --no-empty-directory)
25+
export LINES=$(echo "$FILES" | awk 'NF' | wc -l)
26+
if [ $LINES -ne 0 ]; then
27+
echo "Detected files that need to be committed:"
28+
echo "$FILES" | sed -e "s/^/ /"
29+
echo ""
30+
echo "Try running: make gen-mocks"
31+
exit 1
32+
fi

internal/latestrelease/finder.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@ package latestrelease
1717
import (
1818
"context"
1919
"strings"
20+
"time"
2021

2122
"github.com/Masterminds/semver/v3"
2223
"github.com/google/go-github/v42/github"
2324
"github.com/mongodb/mongocli/internal/version"
2425
)
2526

26-
//go:generate mockgen -destination=../mocks/mock_release_version.go -package=mocks github.com/mongodb/mongocli/internal/version VersionFinder
27+
//go:generate mockgen -destination=../mocks/mock_release_version.go -package=mocks github.com/mongodb/mongocli/internal/latestrelease VersionFinder
2728

2829
type VersionFinder interface {
2930
HasNewVersionAvailable(v, tool string) (newVersionAvailable bool, newVersion string, err error)
@@ -45,14 +46,25 @@ func versionFromTag(release *github.RepositoryRelease, toolName string) string {
4546
return release.GetTagName()
4647
}
4748

49+
const (
50+
mongoCLI = "mongocli"
51+
atlasCLI = "atlascli"
52+
)
53+
4854
func isValidTagForTool(tag, tool string) bool {
49-
if tool == version.MongoCLI {
50-
return !strings.Contains(tag, version.AtlasCLI)
55+
if tool == mongoCLI {
56+
return !strings.Contains(tag, atlasCLI)
5157
}
5258
return strings.Contains(tag, tool)
5359
}
5460

55-
func (s *latestReleaseVersionFinder) searchLatestVersionPerTool(currentVersion *semver.Version, toolName string) (bool, *version.ReleaseInformation, error) {
61+
// ReleaseInformation Release information.
62+
type ReleaseInformation struct {
63+
Version string
64+
PublishedAt time.Time
65+
}
66+
67+
func (s *latestReleaseVersionFinder) searchLatestVersionPerTool(currentVersion *semver.Version, toolName string) (bool, *ReleaseInformation, error) {
5668
release, err := s.r.LatestWithCriteria(minPageSize, isValidTagForTool, toolName)
5769

5870
if err != nil || release == nil {
@@ -66,7 +78,7 @@ func (s *latestReleaseVersionFinder) searchLatestVersionPerTool(currentVersion *
6678
}
6779

6880
if currentVersion.Compare(v) < 0 {
69-
return true, &version.ReleaseInformation{
81+
return true, &ReleaseInformation{
7082
Version: v.Original(),
7183
PublishedAt: release.GetPublishedAt().Time,
7284
}, nil

internal/mocks/mock_tool_latest_version_finder.go

Lines changed: 0 additions & 47 deletions
This file was deleted.

internal/version/release_version.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ func (s *releaseVersionFetcher) LatestWithCriteria(n int, matchCriteria Criteria
5555
return true
5656
}
5757
}
58-
58+
const owner = "mongodb"
59+
const project = "mongodb-atlas-cli"
5960
for {
60-
releases, resp, err := client.Repositories.ListReleases(s.ctx, owner, "mongodb-atlas-cli", opt)
61+
releases, resp, err := client.Repositories.ListReleases(s.ctx, owner, project, opt)
6162
if err != nil {
6263
return nil, err
6364
}

internal/version/version.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,8 @@
1414

1515
package version
1616

17-
import "time"
18-
19-
const (
20-
MongoCLI = "mongocli"
21-
AtlasCLI = "atlascli"
22-
owner = "mongodb"
23-
)
24-
2517
// Version for CLI.
2618
var Version string
2719

2820
// GitCommit git sha of the build.
2921
var GitCommit string
30-
31-
// ReleaseInformation Release information.
32-
type ReleaseInformation struct {
33-
Version string
34-
PublishedAt time.Time
35-
}

0 commit comments

Comments
 (0)