summaryrefslogtreecommitdiff
path: root/spec/finders
Commit message (Collapse)AuthorAgeFilesLines
* Make upcoming milestone work across projectsSean McGivern2016-05-161-0/+34
| | | | | | | | | | | | | | | | | | | | | | Before: we took the next milestone due across all projects in the search and found issues whose milestone title matched that one. Problems: 1. The milestone could be closed. 2. Different projects have milestones with different schedules. 3. Different projects have milestones with different titles. 4. Different projects can have milestones with different schedules, but the _same_ title. That means we could show issues from a past milestone, or one that's far in the future. After: gather the ID of the next milestone on each project we're looking at, and find issues with those milestone IDs. Problems: 1. For a lot of projects, this can return a lot of IDs. 2. The SQL query has to be different between Postgres and MySQL, because MySQL is much more lenient with HAVING: as well as the columns appearing in GROUP BY or in aggregate clauses, MySQL allows them to appear in the SELECT list (un-aggregated).
* Tidy up IssuesFinder specsSean McGivern2016-05-161-68/+80
| | | | | | - Don't do setup in spec bodies. - Don't `describe` a symbol. - Don't use 'should'.
* Return unique issues when using multiple labelsYorick Peterse2016-04-131-0/+16
| | | | | This ensures that IssuableFinder returns a collection of unique issues, even when filtering issues using multiple labels.
* Fix specsissue_12658Douwe Maan2016-03-221-10/+11
|
* Address feedbackDouwe Maan2016-03-223-39/+45
|
* Add specs and add visibility level to admin groupsFelipe Artur2016-03-211-0/+89
|
* Fix specsFelipe Artur2016-03-182-2/+2
|
* Improve group visibility level featureZeger-Jan van de Weg2016-03-182-19/+13
|
* Code fixesFelipe Artur2016-03-173-2/+41
|
* Merge 4009-external-users into issue_12658Felipe Artur2016-03-161-1/+33
|\
| * Bring shared project feature tests from EEDmitriy Zaporozhets2016-03-121-1/+33
| | | | | | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* | Prevent projects to have higher visibility than groupsFelipe Artur2016-03-101-0/+51
| | | | | | | | | | | | Prevent Groups to have smaller visibility than projects Add default_group_visibility_level to configuration Code improvements
* | Add permission level to groupsFelipe Artur2016-03-101-0/+25
|/
* Make better use of the `visibility_level` factory traitsrs-traits-are-goodRobert Speicher2016-03-081-13/+12
|
* remove public field from namespace and refactoringnamespace-clean_upValery Sizov2016-01-042-97/+0
|
* Port GitLab EE ProjectsFinder changesgitlab-ee-d39de0ea-backportYorick Peterse2015-11-201-5/+12
| | | | | | | These changes were added in GitLab EE commit d39de0ea91b26b8840195e5674b92c353cc16661. The tests were a bit bugged (they used a non existing group, thus not testing a crucial part) which I only noticed when porting CE changes to EE.
* Align hash literals to keep Rubocop happyYorick Peterse2015-11-182-4/+4
|
* Refactor ProjectsFinder to not pluck IDsYorick Peterse2015-11-183-35/+109
| | | | | | | | | | | | | | | | | | | This class now uses a UNION (when needed) instead of plucking tens of thousands of project IDs into memory. The tests have also been re-written to ensure all different use cases are tested properly (assuming I didn't forget any cases). The finder has also been broken up into 3 different finder classes: * ContributedProjectsFinder: class for getting the projects a user contributed to. * PersonalProjectsFinder: class for getting the personal projects of a user. * ProjectsFinder: class for getting generic projects visible to a given user. Previously a lot of the logic of these finders was handled directly in the users controller.
* Refactoed GroupsFinder into two separate classesYorick Peterse2015-11-182-9/+91
| | | | | | | | | | | | | | | | | In the previous setup the GroupsFinder class had two distinct tasks: 1. Finding the projects user A could see 2. Finding the projects of user A that user B could see Task two was actually handled outside of the GroupsFinder (in the UsersController) by restricting the returned list of groups to those the viewed user was a member of. Moving all this logic into a single finder proved to be far too complex and confusing, hence there are now two finders: * GroupsFinder: for finding groups a user can see * JoinedGroupsFinder: for finding groups that user A is a member of, restricted to either public groups or groups user B can also see.
* Renamed GroupsFinder spec file so the name matchesYorick Peterse2015-11-181-0/+0
|
* Allow groups to appear in the search results if the group owner allows itValery Sizov2015-11-051-0/+15
|
* Merge remote-tracking branch 'public/trending-projects-performance'Dmitriy Zaporozhets2015-10-081-0/+39
|\
| * Revamp trending projects queryYorick Peterse2015-10-061-24/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the query to use a COUNT nested in an INNER JOIN, instead of a COUNT plus a GROUP BY. There are two reasons for this: 1. Using a COUNT in an INNER JOIN can be quite a bit faster. 2. The use of a GROUP BY means that method calls such as "any?" (and everything else that calls "count") operate on a Hash that counts the amount of notes on a per project basis, instead of just counting the total amount of projects. The query has been moved into Project.trending as its logic is simple enough. As a result of this testing the TrendingProjectsFinder class simply involves testing if the right methods are called, removing the need for setting up database records.
| * Added specs for TrendingProjectsFinderYorick Peterse2015-10-061-0/+43
| |
* | Support filtering by "Any" milestone or issue and fix "No Milestone" and "No ↵Stan Hu2015-10-071-0/+20
|/ | | | | | | | Label" filters Closes #2619 Closes https://github.com/gitlabhq/gitlabhq/issues/9631
* Add `Group#add_*` convenience methodsrs-group-convenience-methodsRobert Speicher2015-08-071-1/+1
| | | | Encapsulates the logic for `Gitlab::Access::WHATEVER` levels.
* Set milestone on new issue when creating issue from index with milestone ↵Douwe Maan2015-05-272-10/+10
| | | | filter active.
* Group milestones by title in the dashboard and all other issue viewsDominik Sander2015-05-011-1/+1
| | | | | | | | | This groups milestones by title for issue views like it has been done for the milestone dashboard/project overview. Before milestones with the same title would show up multiple times in the filter dropdown and one could only filter per project and milestone. Now the milestone filter is based on the title of the milestone, i.e. all issues marked with the same milestone title are shown.
* Updated rspec to rspec 3.x syntaxJeroen van Baarsen2015-02-125-51/+51
| | | | Signed-off-by: Jeroen van Baarsen <jeroenvanbaarsen@gmail.com>
* More tests for issues finderDmitriy Zaporozhets2014-12-051-29/+52
| | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* internal snippets: fix exposing of titleValery Sizov2014-10-241-0/+7
|
* Snippets: public/internal/privateValery Sizov2014-10-091-0/+94
|
* Serialize last_fetched_at as a string with secondsJacob Vosmaer2014-04-281-1/+1
|
* Always set last_fetched_at in NotesFinder specJacob Vosmaer2014-04-281-3/+3
|
* Filter out old notes in NotesFinderJacob Vosmaer2014-04-281-0/+7
|
* Fail faster on an invalid target_typeJacob Vosmaer2014-04-281-0/+5
|
* Notes have noteables but no commitsJacob Vosmaer2014-04-281-1/+1
|
* Add NotesFinder specJacob Vosmaer2014-04-281-0/+26
|
* Fix tests that dont respect project-fork relationDmitriy Zaporozhets2014-04-031-4/+4
| | | | Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
* Merge pull request #6557 from tsigo/faster-merge-request-featuresDmitriy Zaporozhets2014-03-191-11/+7
|\ | | | | Speed up features/notes_on_merge_requests_spec
| * Speed up finders/merge_requests_finder_specRobert Speicher2014-03-191-11/+7
| | | | | | | | | | Uses the :simple merge request factory trait introduced by d166e70; cuts execution time of this spec in half.
* | Make use of project factory traitsRobert Speicher2014-03-191-4/+4
|/
* Update tests and fix Finders readmeDmitriy Zaporozhets2014-02-253-0/+146
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>