func TestSearchPagination(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiRepo := workitem.NewWorkItemRepository(DB) _, err := wiRepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: "specialwordforsearch2", workitem.SystemDescription: nil, workitem.SystemCreator: "baijum", workitem.SystemState: workitem.SystemStateClosed, }, "") require.Nil(t, err) controller := NewSearchController(service, gormapplication.NewGormDB(DB)) q := "specialwordforsearch2" _, sr := test.ShowSearchOK(t, nil, nil, controller, nil, nil, q) // defaults in paging.go is 'pageSizeDefault = 20' assert.Equal(t, "http:///api/search?page[offset]=0&page[limit]=20&q=specialwordforsearch2", *sr.Links.First) assert.Equal(t, "http:///api/search?page[offset]=0&page[limit]=20&q=specialwordforsearch2", *sr.Links.Last) require.NotEmpty(t, sr.Data) r := sr.Data[0] assert.Equal(t, "specialwordforsearch2", r.Attributes[workitem.SystemTitle]) }
func TestSearch(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiRepo := workitem.NewWorkItemRepository(DB) _, err := wiRepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: "specialwordforsearch", workitem.SystemDescription: nil, workitem.SystemCreator: "baijum", workitem.SystemState: workitem.SystemStateClosed, }, "") require.Nil(t, err) controller := NewSearchController(service, gormapplication.NewGormDB(DB)) q := "specialwordforsearch" _, sr := test.ShowSearchOK(t, nil, nil, controller, nil, nil, q) require.NotEmpty(t, sr.Data) r := sr.Data[0] assert.Equal(t, "specialwordforsearch", r.Attributes[workitem.SystemTitle]) }
func TestUnregisteredURLWithPort(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiRepo := workitem.NewWorkItemRepository(DB) description := "Related to http://some-other-domain:8080/different-path/154687364529310/ok issue" expectedDescription := rendering.NewMarkupContentFromLegacy(description) _, err := wiRepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: "specialwordforsearch_new", workitem.SystemDescription: expectedDescription, workitem.SystemCreator: "baijum", workitem.SystemState: workitem.SystemStateClosed, }, "") require.Nil(t, err) controller := NewSearchController(service, gormapplication.NewGormDB(DB)) q := `http://some-other-domain:8080/different-path/` _, sr := test.ShowSearchOK(t, nil, nil, controller, nil, nil, q) require.NotEmpty(t, sr.Data) r := sr.Data[0] assert.Equal(t, description, r.Attributes[workitem.SystemDescription]) }
func TestUnwantedCharactersRelatedToSearchLogic(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiRepo := workitem.NewWorkItemRepository(DB) expectedDescription := rendering.NewMarkupContentFromLegacy("Related to http://example-domain:8080/different-path/ok issue") _, err := wiRepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: "specialwordforsearch_new", workitem.SystemDescription: expectedDescription, workitem.SystemCreator: "baijum", workitem.SystemState: workitem.SystemStateClosed, }, "") require.Nil(t, err) controller := NewSearchController(service, gormapplication.NewGormDB(DB)) // add url: in the query, that is not expected by the code hence need to make sure it gives expected result. q := `http://url:some-random-other-domain:8080/different-path/` _, sr := test.ShowSearchOK(t, nil, nil, controller, nil, nil, q) require.NotNil(t, sr.Data) assert.Empty(t, sr.Data) }
func TestSearchURLWithoutPort(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiRepo := workitem.NewWorkItemRepository(DB) description := "This issue is related to http://localhost/detail/876394" expectedDescription := rendering.NewMarkupContentFromLegacy(description) _, err := wiRepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: "specialwordforsearch_without_port", workitem.SystemDescription: expectedDescription, workitem.SystemCreator: "baijum", workitem.SystemState: workitem.SystemStateClosed, }, "") require.Nil(t, err) controller := NewSearchController(service, gormapplication.NewGormDB(DB)) q := `"http://localhost/detail/876394"` _, sr := test.ShowSearchOK(t, nil, nil, controller, nil, nil, q) require.NotEmpty(t, sr.Data) r := sr.Data[0] assert.Equal(t, description, r.Attributes[workitem.SystemDescription]) }