Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `.github/workflows/build-image.yml`: Upstream switched to pushing to both DockerHub and GitHub Container Repository, while glitch-soc was already pushing to the latter only. Updated our configuration to be slightly more consistent with upstream's naming and styling, but kept our behavior. - `Gemfile.lock`: Updated dependencies textually too close to glitch-soc only hcaptcha dependency. Updated dependencies as upstream did. - `README.md`: Upstream updated its README, but we have a completely different one. Kept our README, though it probably should be reworked at some point. - `app/views/auth/sessions/two_factor.html.haml`: Minor style fix upstream that's on a line glitch-soc removed because of its different theming system. Kept our file as is. - `spec/controllers/health_controller_spec.rb`: This file apparently did not exist upstream, upstream created it with different contents but it is functionally the same. Switched to upstream's version of the file. - `spec/presenters/instance_presenter_spec.rb`: Upstream changed the specs around `GITHUB_REPOSITORY`, while glitch-soc had its own code because it's a fork and does not have the same default source URL. Took upstream's change, but with glitch-soc's repo as the default case. - `yarn.lock`: Upstream dependencies textually too close to a glitch-soc only one. Updated dependencies as upstream did.
This commit is contained in:
14
spec/lib/importer/base_importer_spec.rb
Normal file
14
spec/lib/importer/base_importer_spec.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Importer::BaseImporter do
|
||||
describe 'import!' do
|
||||
let(:pool) { Concurrent::FixedThreadPool.new(5) }
|
||||
let(:importer) { described_class.new(batch_size: 123, executor: pool) }
|
||||
|
||||
it 'raises an error' do
|
||||
expect { importer.import! }.to raise_error(NotImplementedError)
|
||||
end
|
||||
end
|
||||
end
|
14
spec/lib/mastodon/cli_spec.rb
Normal file
14
spec/lib/mastodon/cli_spec.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require 'cli'
|
||||
|
||||
describe Mastodon::CLI do
|
||||
describe 'version' do
|
||||
it 'returns the Mastodon version' do
|
||||
expect { described_class.new.invoke(:version) }.to output(
|
||||
a_string_including(Mastodon::Version.to_s)
|
||||
).to_stdout
|
||||
end
|
||||
end
|
||||
end
|
@ -6,7 +6,7 @@ RSpec.describe PlainTextFormatter do
|
||||
describe '#to_s' do
|
||||
subject { described_class.new(status.text, status.local?).to_s }
|
||||
|
||||
context 'given a post with local status' do
|
||||
context 'when status is local' do
|
||||
let(:status) { Fabricate(:status, text: '<p>a text by a nerd who uses an HTML tag in text</p>', uri: nil) }
|
||||
|
||||
it 'returns the raw text' do
|
||||
@ -14,12 +14,63 @@ RSpec.describe PlainTextFormatter do
|
||||
end
|
||||
end
|
||||
|
||||
context 'given a post with remote status' do
|
||||
context 'when status is remote' do
|
||||
let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') }
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: '<p>Hello</p><script>alert("Hello")</script>') }
|
||||
|
||||
it 'returns tag-stripped text' do
|
||||
expect(subject).to eq 'Hello'
|
||||
context 'when text contains inline HTML tags' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: '<b>Lorem</b> <em>ipsum</em>') }
|
||||
|
||||
it 'strips the tags' do
|
||||
expect(subject).to eq 'Lorem ipsum'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains <p> tags' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: '<p>Lorem</p><p>ipsum</p>') }
|
||||
|
||||
it 'inserts a newline' do
|
||||
expect(subject).to eq "Lorem\nipsum"
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains a single <br> tag' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem<br>ipsum') }
|
||||
|
||||
it 'inserts a newline' do
|
||||
expect(subject).to eq "Lorem\nipsum"
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains consecutive <br> tag' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem<br><br><br>ipsum') }
|
||||
|
||||
it 'inserts a single newline' do
|
||||
expect(subject).to eq "Lorem\nipsum"
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains HTML entity' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem & ipsum ❤') }
|
||||
|
||||
it 'unescapes the entity' do
|
||||
expect(subject).to eq 'Lorem & ipsum ❤'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains <script> tag' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem <script> alert("Booh!") </script>ipsum') }
|
||||
|
||||
it 'strips the tag and its contents' do
|
||||
expect(subject).to eq 'Lorem ipsum'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when text contains an HTML comment tags' do
|
||||
let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem <!-- Booh! -->ipsum') }
|
||||
|
||||
it 'strips the comment' do
|
||||
expect(subject).to eq 'Lorem ipsum'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
18
spec/lib/search_query_transformer_spec.rb
Normal file
18
spec/lib/search_query_transformer_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe SearchQueryTransformer do
|
||||
describe 'initialization' do
|
||||
let(:parser) { SearchQueryParser.new.parse('query') }
|
||||
|
||||
it 'sets attributes' do
|
||||
transformer = described_class.new.apply(parser)
|
||||
|
||||
expect(transformer.should_clauses.first).to be_a(SearchQueryTransformer::TermClause)
|
||||
expect(transformer.must_clauses.first).to be_nil
|
||||
expect(transformer.must_not_clauses.first).to be_nil
|
||||
expect(transformer.filter_clauses.first).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user