@@ -806,6 +806,198 @@ func TestGlobalSearchWithUserPrefFiltering(t *testing.T) {
806806 })
807807}
808808
809+ func TestExpandedRepoInfoWithUserPrefs (t * testing.T ) {
810+ Convey ("ExpandedRepoInfo with User Prefs" , t , func () {
811+ dir := t .TempDir ()
812+ port := GetFreePort ()
813+ baseURL := GetBaseURL (port )
814+ conf := config .New ()
815+ conf .HTTP .Port = port
816+ conf .Storage .RootDirectory = dir
817+
818+ simpleUser := "simpleUser"
819+ simpleUserPassword := "simpleUserPass"
820+ credTests := fmt .Sprintf ("%s\n \n " , getCredString (simpleUser , simpleUserPassword ))
821+
822+ htpasswdPath := MakeHtpasswdFileFromString (credTests )
823+ defer os .Remove (htpasswdPath )
824+
825+ conf .HTTP .Auth = & config.AuthConfig {
826+ HTPasswd : config.AuthHTPasswd {
827+ Path : htpasswdPath ,
828+ },
829+ }
830+
831+ conf .HTTP .AccessControl = & config.AccessControlConfig {
832+ Repositories : config.Repositories {
833+ "**" : config.PolicyGroup {
834+ Policies : []config.Policy {
835+ {
836+ Users : []string {simpleUser },
837+ Actions : []string {"read" , "create" },
838+ },
839+ },
840+ },
841+ },
842+ }
843+
844+ defaultVal := true
845+ conf .Extensions = & extconf.ExtensionConfig {
846+ Search : & extconf.SearchConfig {BaseConfig : extconf.BaseConfig {Enable : & defaultVal }},
847+ }
848+
849+ ctlr := api .NewController (conf )
850+
851+ ctlrManager := NewControllerManager (ctlr )
852+ ctlrManager .StartAndWait (port )
853+ defer ctlrManager .StopServer ()
854+
855+ preferencesBaseURL := baseURL + constants .FullUserPreferencesPrefix
856+ simpleUserClient := resty .R ().SetBasicAuth (simpleUser , simpleUserPassword )
857+
858+ // ------ Add sbrepo and star/bookmark it
859+ sbrepo := "sbrepo"
860+ img , err := GetRandomImage ("tag" )
861+ So (err , ShouldBeNil )
862+ err = UploadImageWithBasicAuth (img , baseURL , sbrepo , simpleUser , simpleUserPassword )
863+ So (err , ShouldBeNil )
864+
865+ resp , err := simpleUserClient .Put (preferencesBaseURL + PutRepoStarURL (sbrepo ))
866+ So (resp .StatusCode (), ShouldEqual , http .StatusOK )
867+ So (err , ShouldBeNil )
868+
869+ resp , err = simpleUserClient .Put (preferencesBaseURL + PutRepoBookmarkURL (sbrepo ))
870+ So (resp .StatusCode (), ShouldEqual , http .StatusOK )
871+ So (err , ShouldBeNil )
872+
873+ // ExpandedRepoinfo
874+
875+ query := `
876+ {
877+ ExpandedRepoInfo(repo:"sbrepo"){
878+ Summary {
879+ Name IsStarred IsBookmarked
880+ }
881+ }
882+ }`
883+
884+ resp , err = simpleUserClient .Get (baseURL + graphqlQueryPrefix + "?query=" + url .QueryEscape (query ))
885+ So (resp , ShouldNotBeNil )
886+ So (err , ShouldBeNil )
887+ So (resp .StatusCode (), ShouldEqual , 200 )
888+
889+ responseStruct := ExpandedRepoInfoResp {}
890+
891+ err = json .Unmarshal (resp .Body (), & responseStruct )
892+ So (err , ShouldBeNil )
893+
894+ repoInfo := responseStruct .ExpandedRepoInfo .RepoInfo
895+ So (repoInfo .Summary .IsBookmarked , ShouldBeTrue )
896+ So (repoInfo .Summary .IsStarred , ShouldBeTrue )
897+
898+ // ------ Add srepo and star it
899+ srepo := "srepo"
900+ img , err = GetRandomImage ("tag" )
901+ So (err , ShouldBeNil )
902+ err = UploadImageWithBasicAuth (img , baseURL , srepo , simpleUser , simpleUserPassword )
903+ So (err , ShouldBeNil )
904+
905+ resp , err = simpleUserClient .Put (preferencesBaseURL + PutRepoStarURL (srepo ))
906+ So (resp .StatusCode (), ShouldEqual , http .StatusOK )
907+ So (err , ShouldBeNil )
908+
909+ // ExpandedRepoinfo
910+ query = `
911+ {
912+ ExpandedRepoInfo(repo:"srepo"){
913+ Summary {
914+ Name IsStarred IsBookmarked
915+ }
916+ }
917+ }`
918+
919+ resp , err = simpleUserClient .Get (baseURL + graphqlQueryPrefix + "?query=" + url .QueryEscape (query ))
920+ So (resp , ShouldNotBeNil )
921+ So (err , ShouldBeNil )
922+ So (resp .StatusCode (), ShouldEqual , 200 )
923+
924+ responseStruct = ExpandedRepoInfoResp {}
925+
926+ err = json .Unmarshal (resp .Body (), & responseStruct )
927+ So (err , ShouldBeNil )
928+
929+ repoInfo = responseStruct .ExpandedRepoInfo .RepoInfo
930+ So (repoInfo .Summary .IsBookmarked , ShouldBeFalse )
931+ So (repoInfo .Summary .IsStarred , ShouldBeTrue )
932+
933+ // ------ Add brepo and bookmark it
934+ brepo := "brepo"
935+ img , err = GetRandomImage ("tag" )
936+ So (err , ShouldBeNil )
937+ err = UploadImageWithBasicAuth (img , baseURL , brepo , simpleUser , simpleUserPassword )
938+ So (err , ShouldBeNil )
939+
940+ resp , err = simpleUserClient .Put (preferencesBaseURL + PutRepoBookmarkURL (brepo ))
941+ So (resp .StatusCode (), ShouldEqual , http .StatusOK )
942+ So (err , ShouldBeNil )
943+
944+ // ExpandedRepoinfo
945+ query = `
946+ {
947+ ExpandedRepoInfo(repo:"brepo"){
948+ Summary {
949+ Name IsStarred IsBookmarked
950+ }
951+ }
952+ }`
953+
954+ resp , err = simpleUserClient .Get (baseURL + graphqlQueryPrefix + "?query=" + url .QueryEscape (query ))
955+ So (resp , ShouldNotBeNil )
956+ So (err , ShouldBeNil )
957+ So (resp .StatusCode (), ShouldEqual , 200 )
958+
959+ responseStruct = ExpandedRepoInfoResp {}
960+
961+ err = json .Unmarshal (resp .Body (), & responseStruct )
962+ So (err , ShouldBeNil )
963+
964+ repoInfo = responseStruct .ExpandedRepoInfo .RepoInfo
965+ So (repoInfo .Summary .IsBookmarked , ShouldBeTrue )
966+ So (repoInfo .Summary .IsStarred , ShouldBeFalse )
967+
968+ // ------ Add repo without star/bookmark
969+ repo := "repo"
970+ img , err = GetRandomImage ("tag" )
971+ So (err , ShouldBeNil )
972+ err = UploadImageWithBasicAuth (img , baseURL , repo , simpleUser , simpleUserPassword )
973+ So (err , ShouldBeNil )
974+
975+ // ExpandedRepoinfo
976+ query = `
977+ {
978+ ExpandedRepoInfo(repo:"repo"){
979+ Summary {
980+ Name IsStarred IsBookmarked
981+ }
982+ }
983+ }`
984+
985+ resp , err = simpleUserClient .Get (baseURL + graphqlQueryPrefix + "?query=" + url .QueryEscape (query ))
986+ So (resp , ShouldNotBeNil )
987+ So (err , ShouldBeNil )
988+ So (resp .StatusCode (), ShouldEqual , 200 )
989+
990+ responseStruct = ExpandedRepoInfoResp {}
991+
992+ err = json .Unmarshal (resp .Body (), & responseStruct )
993+ So (err , ShouldBeNil )
994+
995+ repoInfo = responseStruct .ExpandedRepoInfo .RepoInfo
996+ So (repoInfo .Summary .IsBookmarked , ShouldBeFalse )
997+ So (repoInfo .Summary .IsStarred , ShouldBeFalse )
998+ })
999+ }
1000+
8091001func PutRepoStarURL (repo string ) string {
8101002 return fmt .Sprintf ("?repo=%s&action=toggleStar" , repo )
8111003}
0 commit comments