The CKEditor mention plugin reads `displayId` (camelCase, stringified)
off each entry to insert `#PROJ-7` or `#1234` into the editor source and
to build the mention's link URL. The contract must hold in both classic
and semantic mode so the frontend doesn't have to branch on identifier
shape, and the comment in the controller cites APIv3 parity as the reason
the value is forced to a String.
Render-views spec asserts the camelCase key, the stringified value, and
the mode-conditional shape (numeric id in classic, semantic identifier
in semantic).
- **it's** is a contraction of _it is_ or _it has_. It requires an
apostrophe.
- **its** is the posssive form of _it_, denoting ownership. It should
not use an apostrophe.
* Fix argument alignment since f08bea3467
The FactoryBot.* prefix has been removed in f08bea3467. Since then
rubocop complains about Layout/ArgumentAlignment. This commit fixes it.
* do not fix alignments for modules/*/spec yet
hoping to be under the limit of 65535 characters for reviewdog to report on rubocop errors
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.
Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
Fixes in spec/controllers:
```
DEPRECATION WARNING: ActionController::TestCase HTTP request methods will accept only
keyword arguments in future Rails versions.
```
lets see if that really makes stuff more understandable...
I (personally) found the old definition of "all" to be too narrow.
Now there is:
scope == "all": I want to search over all WPs
scope == "relatable": I want to search over all WPs that are relatable to WPs in the given project (via project_id)
no scope: If I specified a project search over the WPs of that one, otherwise search everywhere (like "all")
This conversion is done by Transpec 1.10.4 with the following command:
transpec
* 402 conversions
from: it { should ... }
to: it { is_expected.to ... }
* 67 conversions
from: be_true
to: be_truthy
* 55 conversions
from: be_false
to: be_falsey
* 35 conversions
from: it { should_not ... }
to: it { is_expected.not_to ... }
* 20 conversions
from: == expected
to: eq(expected)
* 5 conversions
from: obj.stub(:message)
to: allow(obj).to receive(:message)
* 4 conversions
from: =~ /pattern/
to: match(/pattern/)
* 1 conversion
from: obj.should_receive(:message)
to: expect(obj).to receive(:message)
* 1 conversion
from: Klass.any_instance.stub(:message)
to: allow_any_instance_of(Klass).to receive(:message)
* 1 conversion
from: after { example }
to: after { |example| example }
* 1 conversion
from: pending
to: skip