DRY up the specs for Projects::CompareController
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=322427)
</details>
<!--IssueSummary end-->
The following discussion from !51985 should be addressed:
- [ ] @10io started a [discussion](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/51985#note_510904639): (+1 comment)
> Food for thoughts:
>
> All these contexts seem to play with different projects/forks and different visibilities. This could be summarized in a table based spec to have a better view of what is allowed and what is not allowed.
>
> This is certainly out of the scope of this MR.
/cc @nick.thomas
issue