Skip to content

Commit

Permalink
rebase on master and adapt tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yannick2009 committed May 19, 2024
1 parent 52d7ec8 commit 7088e5e
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 12 deletions.
20 changes: 13 additions & 7 deletions pkg/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (

var (
ErrBeautifyMD = errors.New("error beautifying markdown")
ErrGetAlias = errors.New("error getting alias")
ErrGetProject = errors.New("error getting project")
ErrReadREADME = errors.New("error reading README")
)
Expand Down Expand Up @@ -85,19 +86,24 @@ func BeautifyMD(data []byte) (string, error) {

// ReadREADME: returns the byte array of README.md of a project
func ReadREADME(dbname, projectName string) ([]byte, error) {
actualName, err := db.GetRecord(dbname, projectName, pkg.ProjectAliasBucket)
if err == nil {
projectName = actualName
}
path, err := db.GetRecord(dbname, projectName, pkg.ProjectPaths)
if err != nil {
log.Printf("project: %v not a valid project\n", projectName)
return nil, errors.Join(ErrGetProject, err)
actualName, err := db.GetRecord(dbname, projectName, pkg.ProjectAliasBucket)
if err != nil {
log.Printf("project: %v not a valid project\n", projectName)
return nil, errors.Join(ErrGetAlias, err)
}
projectName = actualName
path, err = db.GetRecord(dbname, projectName, pkg.ProjectPaths)
if err != nil {
log.Printf("project: %v not a valid project\n", projectName)
return nil, errors.Join(ErrGetProject, err)
}
}
pPath := filepath.Join(path, "README.md")
data, err := os.ReadFile(pPath)
if err != nil {
return nil, errors.Join(ErrReadREADME, err)
return nil, errors.Join(ErrReadREADME, fmt.Errorf("something went wrong while reading README for %s: %w", projectName, err))
}
return data, nil
}
28 changes: 23 additions & 5 deletions pkg/utils/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func Test_ReadREADME(t *testing.T) {
assert.Equal(t, expected, actual)
require.NoError(t, err)
})
t.Run("Test ReadREADME with alias", func(t *testing.T) {
t.Run("Test ReadREADME with well alias and project", func(t *testing.T) {
alias := "project_alias"
expected := []byte{}

Expand All @@ -140,16 +140,34 @@ func Test_ReadREADME(t *testing.T) {
require.NoError(t, err)
f.Close()

err = db.WriteToDB(dbname, map[string]string{projectName: alias}, pkg.ProjectAliasBucket)
err = db.WriteToDB(dbname, map[string]string{alias: projectName}, pkg.ProjectAliasBucket)
require.NoError(t, err)
err = db.WriteToDB(dbname, map[string]string{projectName: projectPath, alias: projectPath}, pkg.ProjectPaths)
err = db.WriteToDB(dbname, map[string]string{projectName: projectPath}, pkg.ProjectPaths)
require.NoError(t, err)

actual, err := utils.ReadREADME(dbname, projectName)
actual, err := utils.ReadREADME(dbname, alias)

assert.Equal(t, expected, actual)
require.NoError(t, err)
})
t.Run("Test ReadREADME with well alias and bad project", func(t *testing.T) {
alias := "project_alias"
expected := []byte(nil)

t.Cleanup(func() {
err := db.DeleteDb(dbname)
require.NoError(t, err)
_ = os.RemoveAll(projectPath)
})

err := db.WriteToDB(dbname, map[string]string{alias: projectName}, pkg.ProjectAliasBucket)
require.NoError(t, err)

actual, err := utils.ReadREADME(dbname, alias)

assert.Equal(t, expected, actual)
require.ErrorIs(t, err, utils.ErrGetProject)
})

t.Run("Test ReadREADME with empty project name", func(t *testing.T) {
projectName := ""
Expand All @@ -158,7 +176,7 @@ func Test_ReadREADME(t *testing.T) {
actual, err := utils.ReadREADME(dbname, projectName)

assert.Equal(t, expected, actual)
require.ErrorIs(t, err, utils.ErrGetProject)
require.ErrorIs(t, err, utils.ErrGetAlias)
})

t.Run("Test ReadREADME with invalid README file name", func(t *testing.T) {
Expand Down

0 comments on commit 7088e5e

Please sign in to comment.