|
|
|
@ -15,108 +15,11 @@ import ( |
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func TestSearchRepository(t *testing.T) { |
|
|
|
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
|
|
|
|
|
|
// test search public repository on explore page
|
|
|
|
|
repos, count, err := repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "repo_12", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_12", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "test_repo", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Equal(t, int64(2), count) |
|
|
|
|
assert.Len(t, repos, 2) |
|
|
|
|
|
|
|
|
|
// test search private repository on explore page
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "repo_13", |
|
|
|
|
Private: true, |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_13", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "test_repo", |
|
|
|
|
Private: true, |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Equal(t, int64(3), count) |
|
|
|
|
assert.Len(t, repos, 3) |
|
|
|
|
|
|
|
|
|
// Test non existing owner
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{OwnerID: unittest.NonexistentID}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Empty(t, repos) |
|
|
|
|
assert.Equal(t, int64(0), count) |
|
|
|
|
|
|
|
|
|
// Test search within description
|
|
|
|
|
repos, count, err = repo_model.SearchRepository(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "description_14", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
IncludeDescription: true, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_14", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
// Test NOT search within description
|
|
|
|
|
repos, count, err = repo_model.SearchRepository(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "description_14", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
IncludeDescription: false, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Empty(t, repos) |
|
|
|
|
assert.Equal(t, int64(0), count) |
|
|
|
|
|
|
|
|
|
func getTestCases() []struct { |
|
|
|
|
name string |
|
|
|
|
opts *repo_model.SearchRepoOptions |
|
|
|
|
count int |
|
|
|
|
} { |
|
|
|
|
testCases := []struct { |
|
|
|
|
name string |
|
|
|
|
opts *repo_model.SearchRepoOptions |
|
|
|
@ -274,6 +177,113 @@ func TestSearchRepository(t *testing.T) { |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return testCases |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestSearchRepository(t *testing.T) { |
|
|
|
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
|
|
|
|
|
|
// test search public repository on explore page
|
|
|
|
|
repos, count, err := repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "repo_12", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_12", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "test_repo", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Equal(t, int64(2), count) |
|
|
|
|
assert.Len(t, repos, 2) |
|
|
|
|
|
|
|
|
|
// test search private repository on explore page
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "repo_13", |
|
|
|
|
Private: true, |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_13", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "test_repo", |
|
|
|
|
Private: true, |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Equal(t, int64(3), count) |
|
|
|
|
assert.Len(t, repos, 3) |
|
|
|
|
|
|
|
|
|
// Test non existing owner
|
|
|
|
|
repos, count, err = repo_model.SearchRepositoryByName(db.DefaultContext, &repo_model.SearchRepoOptions{OwnerID: unittest.NonexistentID}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Empty(t, repos) |
|
|
|
|
assert.Equal(t, int64(0), count) |
|
|
|
|
|
|
|
|
|
// Test search within description
|
|
|
|
|
repos, count, err = repo_model.SearchRepository(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "description_14", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
IncludeDescription: true, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
if assert.Len(t, repos, 1) { |
|
|
|
|
assert.Equal(t, "test_repo_14", repos[0].Name) |
|
|
|
|
} |
|
|
|
|
assert.Equal(t, int64(1), count) |
|
|
|
|
|
|
|
|
|
// Test NOT search within description
|
|
|
|
|
repos, count, err = repo_model.SearchRepository(db.DefaultContext, &repo_model.SearchRepoOptions{ |
|
|
|
|
ListOptions: db.ListOptions{ |
|
|
|
|
Page: 1, |
|
|
|
|
PageSize: 10, |
|
|
|
|
}, |
|
|
|
|
Keyword: "description_14", |
|
|
|
|
Collaborate: util.OptionalBoolFalse, |
|
|
|
|
IncludeDescription: false, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Empty(t, repos) |
|
|
|
|
assert.Equal(t, int64(0), count) |
|
|
|
|
|
|
|
|
|
testCases := getTestCases() |
|
|
|
|
|
|
|
|
|
for _, testCase := range testCases { |
|
|
|
|
t.Run(testCase.name, func(t *testing.T) { |
|
|
|
|
repos, count, err := repo_model.SearchRepositoryByName(db.DefaultContext, testCase.opts) |
|
|
|
@ -349,6 +359,21 @@ func TestSearchRepository(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestCountRepository(t *testing.T) { |
|
|
|
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
|
|
|
|
|
|
testCases := getTestCases() |
|
|
|
|
|
|
|
|
|
for _, testCase := range testCases { |
|
|
|
|
t.Run(testCase.name, func(t *testing.T) { |
|
|
|
|
count, err := repo_model.CountRepository(db.DefaultContext, testCase.opts) |
|
|
|
|
|
|
|
|
|
assert.NoError(t, err) |
|
|
|
|
assert.Equal(t, int64(testCase.count), count) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestSearchRepositoryByTopicName(t *testing.T) { |
|
|
|
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
|
|
|
|
|
|