Merge pull request #1594 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
This commit is contained in:
		
							
								
								
									
										10
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Gemfile
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ gem 'makara', '~> 0.5'
 | 
				
			|||||||
gem 'pghero', '~> 2.8'
 | 
					gem 'pghero', '~> 2.8'
 | 
				
			||||||
gem 'dotenv-rails', '~> 2.7'
 | 
					gem 'dotenv-rails', '~> 2.7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gem 'aws-sdk-s3', '~> 1.99', require: false
 | 
					gem 'aws-sdk-s3', '~> 1.100', require: false
 | 
				
			||||||
gem 'fog-core', '<= 2.1.0'
 | 
					gem 'fog-core', '<= 2.1.0'
 | 
				
			||||||
gem 'fog-openstack', '~> 0.3', require: false
 | 
					gem 'fog-openstack', '~> 0.3', require: false
 | 
				
			||||||
gem 'paperclip', '~> 6.0'
 | 
					gem 'paperclip', '~> 6.0'
 | 
				
			||||||
@@ -53,7 +53,7 @@ gem 'fastimage'
 | 
				
			|||||||
gem 'hiredis', '~> 0.6'
 | 
					gem 'hiredis', '~> 0.6'
 | 
				
			||||||
gem 'redis-namespace', '~> 1.8'
 | 
					gem 'redis-namespace', '~> 1.8'
 | 
				
			||||||
gem 'htmlentities', '~> 4.3'
 | 
					gem 'htmlentities', '~> 4.3'
 | 
				
			||||||
gem 'http', '~> 4.4'
 | 
					gem 'http', '~> 5.0'
 | 
				
			||||||
gem 'http_accept_language', '~> 2.1'
 | 
					gem 'http_accept_language', '~> 2.1'
 | 
				
			||||||
gem 'httplog', '~> 1.5.0'
 | 
					gem 'httplog', '~> 1.5.0'
 | 
				
			||||||
gem 'idn-ruby', require: 'idn'
 | 
					gem 'idn-ruby', require: 'idn'
 | 
				
			||||||
@@ -75,7 +75,7 @@ gem 'rails-i18n', '~> 6.0'
 | 
				
			|||||||
gem 'rails-settings-cached', '~> 0.6'
 | 
					gem 'rails-settings-cached', '~> 0.6'
 | 
				
			||||||
gem 'redis', '~> 4.4', require: ['redis', 'redis/connection/hiredis']
 | 
					gem 'redis', '~> 4.4', require: ['redis', 'redis/connection/hiredis']
 | 
				
			||||||
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
 | 
					gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
 | 
				
			||||||
gem 'rqrcode', '~> 2.0'
 | 
					gem 'rqrcode', '~> 2.1'
 | 
				
			||||||
gem 'ruby-progressbar', '~> 1.11'
 | 
					gem 'ruby-progressbar', '~> 1.11'
 | 
				
			||||||
gem 'sanitize', '~> 6.0'
 | 
					gem 'sanitize', '~> 6.0'
 | 
				
			||||||
gem 'scenic', '~> 1.5'
 | 
					gem 'scenic', '~> 1.5'
 | 
				
			||||||
@@ -117,7 +117,7 @@ end
 | 
				
			|||||||
group :test do
 | 
					group :test do
 | 
				
			||||||
  gem 'capybara', '~> 3.35'
 | 
					  gem 'capybara', '~> 3.35'
 | 
				
			||||||
  gem 'climate_control', '~> 0.2'
 | 
					  gem 'climate_control', '~> 0.2'
 | 
				
			||||||
  gem 'faker', '~> 2.18'
 | 
					  gem 'faker', '~> 2.19'
 | 
				
			||||||
  gem 'microformats', '~> 4.2'
 | 
					  gem 'microformats', '~> 4.2'
 | 
				
			||||||
  gem 'rails-controller-testing', '~> 1.0'
 | 
					  gem 'rails-controller-testing', '~> 1.0'
 | 
				
			||||||
  gem 'rspec-sidekiq', '~> 3.1'
 | 
					  gem 'rspec-sidekiq', '~> 3.1'
 | 
				
			||||||
@@ -136,7 +136,7 @@ group :development do
 | 
				
			|||||||
  gem 'letter_opener', '~> 1.7'
 | 
					  gem 'letter_opener', '~> 1.7'
 | 
				
			||||||
  gem 'letter_opener_web', '~> 1.4'
 | 
					  gem 'letter_opener_web', '~> 1.4'
 | 
				
			||||||
  gem 'memory_profiler'
 | 
					  gem 'memory_profiler'
 | 
				
			||||||
  gem 'rubocop', '~> 1.19', require: false
 | 
					  gem 'rubocop', '~> 1.20', require: false
 | 
				
			||||||
  gem 'rubocop-rails', '~> 2.11', require: false
 | 
					  gem 'rubocop-rails', '~> 2.11', require: false
 | 
				
			||||||
  gem 'brakeman', '~> 5.1', require: false
 | 
					  gem 'brakeman', '~> 5.1', require: false
 | 
				
			||||||
  gem 'bundler-audit', '~> 0.8', require: false
 | 
					  gem 'bundler-audit', '~> 0.8', require: false
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								Gemfile.lock
									
									
									
									
									
								
							@@ -79,16 +79,16 @@ GEM
 | 
				
			|||||||
      encryptor (~> 3.0.0)
 | 
					      encryptor (~> 3.0.0)
 | 
				
			||||||
    awrence (1.1.1)
 | 
					    awrence (1.1.1)
 | 
				
			||||||
    aws-eventstream (1.1.1)
 | 
					    aws-eventstream (1.1.1)
 | 
				
			||||||
    aws-partitions (1.488.0)
 | 
					    aws-partitions (1.492.0)
 | 
				
			||||||
    aws-sdk-core (3.119.0)
 | 
					    aws-sdk-core (3.119.1)
 | 
				
			||||||
      aws-eventstream (~> 1, >= 1.0.2)
 | 
					      aws-eventstream (~> 1, >= 1.0.2)
 | 
				
			||||||
      aws-partitions (~> 1, >= 1.239.0)
 | 
					      aws-partitions (~> 1, >= 1.239.0)
 | 
				
			||||||
      aws-sigv4 (~> 1.1)
 | 
					      aws-sigv4 (~> 1.1)
 | 
				
			||||||
      jmespath (~> 1.0)
 | 
					      jmespath (~> 1.0)
 | 
				
			||||||
    aws-sdk-kms (1.46.0)
 | 
					    aws-sdk-kms (1.47.0)
 | 
				
			||||||
      aws-sdk-core (~> 3, >= 3.119.0)
 | 
					      aws-sdk-core (~> 3, >= 3.119.0)
 | 
				
			||||||
      aws-sigv4 (~> 1.1)
 | 
					      aws-sigv4 (~> 1.1)
 | 
				
			||||||
    aws-sdk-s3 (1.99.0)
 | 
					    aws-sdk-s3 (1.100.0)
 | 
				
			||||||
      aws-sdk-core (~> 3, >= 3.119.0)
 | 
					      aws-sdk-core (~> 3, >= 3.119.0)
 | 
				
			||||||
      aws-sdk-kms (~> 1)
 | 
					      aws-sdk-kms (~> 1)
 | 
				
			||||||
      aws-sigv4 (~> 1.1)
 | 
					      aws-sigv4 (~> 1.1)
 | 
				
			||||||
@@ -211,7 +211,7 @@ GEM
 | 
				
			|||||||
      tzinfo
 | 
					      tzinfo
 | 
				
			||||||
    excon (0.76.0)
 | 
					    excon (0.76.0)
 | 
				
			||||||
    fabrication (2.22.0)
 | 
					    fabrication (2.22.0)
 | 
				
			||||||
    faker (2.18.0)
 | 
					    faker (2.19.0)
 | 
				
			||||||
      i18n (>= 1.6, < 2)
 | 
					      i18n (>= 1.6, < 2)
 | 
				
			||||||
    faraday (1.3.0)
 | 
					    faraday (1.3.0)
 | 
				
			||||||
      faraday-net_http (~> 1.0)
 | 
					      faraday-net_http (~> 1.0)
 | 
				
			||||||
@@ -220,7 +220,7 @@ GEM
 | 
				
			|||||||
    faraday-net_http (1.0.1)
 | 
					    faraday-net_http (1.0.1)
 | 
				
			||||||
    fast_blank (1.0.1)
 | 
					    fast_blank (1.0.1)
 | 
				
			||||||
    fastimage (2.2.5)
 | 
					    fastimage (2.2.5)
 | 
				
			||||||
    ffi (1.15.0)
 | 
					    ffi (1.15.3)
 | 
				
			||||||
    ffi-compiler (1.0.1)
 | 
					    ffi-compiler (1.0.1)
 | 
				
			||||||
      ffi (>= 1.0.0)
 | 
					      ffi (>= 1.0.0)
 | 
				
			||||||
      rake
 | 
					      rake
 | 
				
			||||||
@@ -262,16 +262,14 @@ GEM
 | 
				
			|||||||
    hiredis (0.6.3)
 | 
					    hiredis (0.6.3)
 | 
				
			||||||
    hkdf (0.3.0)
 | 
					    hkdf (0.3.0)
 | 
				
			||||||
    htmlentities (4.3.4)
 | 
					    htmlentities (4.3.4)
 | 
				
			||||||
    http (4.4.1)
 | 
					    http (5.0.1)
 | 
				
			||||||
      addressable (~> 2.3)
 | 
					      addressable (~> 2.3)
 | 
				
			||||||
      http-cookie (~> 1.0)
 | 
					      http-cookie (~> 1.0)
 | 
				
			||||||
      http-form_data (~> 2.2)
 | 
					      http-form_data (~> 2.2)
 | 
				
			||||||
      http-parser (~> 1.2.0)
 | 
					      llhttp-ffi (~> 0.3.0)
 | 
				
			||||||
    http-cookie (1.0.3)
 | 
					    http-cookie (1.0.4)
 | 
				
			||||||
      domain_name (~> 0.5)
 | 
					      domain_name (~> 0.5)
 | 
				
			||||||
    http-form_data (2.3.0)
 | 
					    http-form_data (2.3.0)
 | 
				
			||||||
    http-parser (1.2.1)
 | 
					 | 
				
			||||||
      ffi-compiler (>= 1.0, < 2.0)
 | 
					 | 
				
			||||||
    http_accept_language (2.1.1)
 | 
					    http_accept_language (2.1.1)
 | 
				
			||||||
    httplog (1.5.0)
 | 
					    httplog (1.5.0)
 | 
				
			||||||
      rack (>= 1.0)
 | 
					      rack (>= 1.0)
 | 
				
			||||||
@@ -327,6 +325,9 @@ GEM
 | 
				
			|||||||
      letter_opener (~> 1.0)
 | 
					      letter_opener (~> 1.0)
 | 
				
			||||||
      railties (>= 3.2)
 | 
					      railties (>= 3.2)
 | 
				
			||||||
    link_header (0.0.8)
 | 
					    link_header (0.0.8)
 | 
				
			||||||
 | 
					    llhttp-ffi (0.3.1)
 | 
				
			||||||
 | 
					      ffi-compiler (~> 1.0)
 | 
				
			||||||
 | 
					      rake (~> 13.0)
 | 
				
			||||||
    lograge (0.11.2)
 | 
					    lograge (0.11.2)
 | 
				
			||||||
      actionpack (>= 4)
 | 
					      actionpack (>= 4)
 | 
				
			||||||
      activesupport (>= 4)
 | 
					      activesupport (>= 4)
 | 
				
			||||||
@@ -364,7 +365,7 @@ GEM
 | 
				
			|||||||
      net-ssh (>= 2.6.5, < 7.0.0)
 | 
					      net-ssh (>= 2.6.5, < 7.0.0)
 | 
				
			||||||
    net-ssh (6.1.0)
 | 
					    net-ssh (6.1.0)
 | 
				
			||||||
    nio4r (2.5.8)
 | 
					    nio4r (2.5.8)
 | 
				
			||||||
    nokogiri (1.12.3)
 | 
					    nokogiri (1.12.4)
 | 
				
			||||||
      mini_portile2 (~> 2.6.1)
 | 
					      mini_portile2 (~> 2.6.1)
 | 
				
			||||||
      racc (~> 1.4)
 | 
					      racc (~> 1.4)
 | 
				
			||||||
    nsa (0.2.8)
 | 
					    nsa (0.2.8)
 | 
				
			||||||
@@ -437,7 +438,7 @@ GEM
 | 
				
			|||||||
      rack (>= 1.0, < 3)
 | 
					      rack (>= 1.0, < 3)
 | 
				
			||||||
    rack-cors (1.1.1)
 | 
					    rack-cors (1.1.1)
 | 
				
			||||||
      rack (>= 2.0.0)
 | 
					      rack (>= 2.0.0)
 | 
				
			||||||
    rack-proxy (0.6.5)
 | 
					    rack-proxy (0.7.0)
 | 
				
			||||||
      rack
 | 
					      rack
 | 
				
			||||||
    rack-test (1.1.0)
 | 
					    rack-test (1.1.0)
 | 
				
			||||||
      rack (>= 1.0, < 3)
 | 
					      rack (>= 1.0, < 3)
 | 
				
			||||||
@@ -496,10 +497,10 @@ GEM
 | 
				
			|||||||
    rexml (3.2.5)
 | 
					    rexml (3.2.5)
 | 
				
			||||||
    rotp (6.2.0)
 | 
					    rotp (6.2.0)
 | 
				
			||||||
    rpam2 (4.0.2)
 | 
					    rpam2 (4.0.2)
 | 
				
			||||||
    rqrcode (2.0.0)
 | 
					    rqrcode (2.1.0)
 | 
				
			||||||
      chunky_png (~> 1.0)
 | 
					      chunky_png (~> 1.0)
 | 
				
			||||||
      rqrcode_core (~> 1.0)
 | 
					      rqrcode_core (~> 1.0)
 | 
				
			||||||
    rqrcode_core (1.0.0)
 | 
					    rqrcode_core (1.2.0)
 | 
				
			||||||
    rspec-core (3.10.1)
 | 
					    rspec-core (3.10.1)
 | 
				
			||||||
      rspec-support (~> 3.10.0)
 | 
					      rspec-support (~> 3.10.0)
 | 
				
			||||||
    rspec-expectations (3.10.1)
 | 
					    rspec-expectations (3.10.1)
 | 
				
			||||||
@@ -522,7 +523,7 @@ GEM
 | 
				
			|||||||
    rspec-support (3.10.2)
 | 
					    rspec-support (3.10.2)
 | 
				
			||||||
    rspec_junit_formatter (0.4.1)
 | 
					    rspec_junit_formatter (0.4.1)
 | 
				
			||||||
      rspec-core (>= 2, < 4, != 2.12.0)
 | 
					      rspec-core (>= 2, < 4, != 2.12.0)
 | 
				
			||||||
    rubocop (1.19.0)
 | 
					    rubocop (1.20.0)
 | 
				
			||||||
      parallel (~> 1.10)
 | 
					      parallel (~> 1.10)
 | 
				
			||||||
      parser (>= 3.0.0.0)
 | 
					      parser (>= 3.0.0.0)
 | 
				
			||||||
      rainbow (>= 2.2.2, < 4.0)
 | 
					      rainbow (>= 2.2.2, < 4.0)
 | 
				
			||||||
@@ -531,7 +532,7 @@ GEM
 | 
				
			|||||||
      rubocop-ast (>= 1.9.1, < 2.0)
 | 
					      rubocop-ast (>= 1.9.1, < 2.0)
 | 
				
			||||||
      ruby-progressbar (~> 1.7)
 | 
					      ruby-progressbar (~> 1.7)
 | 
				
			||||||
      unicode-display_width (>= 1.4.0, < 3.0)
 | 
					      unicode-display_width (>= 1.4.0, < 3.0)
 | 
				
			||||||
    rubocop-ast (1.10.0)
 | 
					    rubocop-ast (1.11.0)
 | 
				
			||||||
      parser (>= 3.0.1.1)
 | 
					      parser (>= 3.0.1.1)
 | 
				
			||||||
    rubocop-rails (2.11.3)
 | 
					    rubocop-rails (2.11.3)
 | 
				
			||||||
      activesupport (>= 4.2.0)
 | 
					      activesupport (>= 4.2.0)
 | 
				
			||||||
@@ -553,7 +554,7 @@ GEM
 | 
				
			|||||||
      railties (>= 4.0.0)
 | 
					      railties (>= 4.0.0)
 | 
				
			||||||
    securecompare (1.0.0)
 | 
					    securecompare (1.0.0)
 | 
				
			||||||
    semantic_range (3.0.0)
 | 
					    semantic_range (3.0.0)
 | 
				
			||||||
    sidekiq (6.2.1)
 | 
					    sidekiq (6.2.2)
 | 
				
			||||||
      connection_pool (>= 2.2.2)
 | 
					      connection_pool (>= 2.2.2)
 | 
				
			||||||
      rack (~> 2.0)
 | 
					      rack (~> 2.0)
 | 
				
			||||||
      redis (>= 4.2.0)
 | 
					      redis (>= 4.2.0)
 | 
				
			||||||
@@ -647,7 +648,7 @@ GEM
 | 
				
			|||||||
      addressable (>= 2.8.0)
 | 
					      addressable (>= 2.8.0)
 | 
				
			||||||
      crack (>= 0.3.2)
 | 
					      crack (>= 0.3.2)
 | 
				
			||||||
      hashdiff (>= 0.4.0, < 2.0.0)
 | 
					      hashdiff (>= 0.4.0, < 2.0.0)
 | 
				
			||||||
    webpacker (5.4.0)
 | 
					    webpacker (5.4.2)
 | 
				
			||||||
      activesupport (>= 5.2)
 | 
					      activesupport (>= 5.2)
 | 
				
			||||||
      rack-proxy (>= 0.6.1)
 | 
					      rack-proxy (>= 0.6.1)
 | 
				
			||||||
      railties (>= 5.2)
 | 
					      railties (>= 5.2)
 | 
				
			||||||
@@ -672,7 +673,7 @@ DEPENDENCIES
 | 
				
			|||||||
  active_record_query_trace (~> 1.8)
 | 
					  active_record_query_trace (~> 1.8)
 | 
				
			||||||
  addressable (~> 2.8)
 | 
					  addressable (~> 2.8)
 | 
				
			||||||
  annotate (~> 3.1)
 | 
					  annotate (~> 3.1)
 | 
				
			||||||
  aws-sdk-s3 (~> 1.99)
 | 
					  aws-sdk-s3 (~> 1.100)
 | 
				
			||||||
  better_errors (~> 2.9)
 | 
					  better_errors (~> 2.9)
 | 
				
			||||||
  binding_of_caller (~> 1.0)
 | 
					  binding_of_caller (~> 1.0)
 | 
				
			||||||
  blurhash (~> 0.1)
 | 
					  blurhash (~> 0.1)
 | 
				
			||||||
@@ -701,7 +702,7 @@ DEPENDENCIES
 | 
				
			|||||||
  dotenv-rails (~> 2.7)
 | 
					  dotenv-rails (~> 2.7)
 | 
				
			||||||
  ed25519 (~> 1.2)
 | 
					  ed25519 (~> 1.2)
 | 
				
			||||||
  fabrication (~> 2.22)
 | 
					  fabrication (~> 2.22)
 | 
				
			||||||
  faker (~> 2.18)
 | 
					  faker (~> 2.19)
 | 
				
			||||||
  fast_blank (~> 1.0)
 | 
					  fast_blank (~> 1.0)
 | 
				
			||||||
  fastimage
 | 
					  fastimage
 | 
				
			||||||
  fog-core (<= 2.1.0)
 | 
					  fog-core (<= 2.1.0)
 | 
				
			||||||
@@ -710,7 +711,7 @@ DEPENDENCIES
 | 
				
			|||||||
  hamlit-rails (~> 0.2)
 | 
					  hamlit-rails (~> 0.2)
 | 
				
			||||||
  hiredis (~> 0.6)
 | 
					  hiredis (~> 0.6)
 | 
				
			||||||
  htmlentities (~> 4.3)
 | 
					  htmlentities (~> 4.3)
 | 
				
			||||||
  http (~> 4.4)
 | 
					  http (~> 5.0)
 | 
				
			||||||
  http_accept_language (~> 2.1)
 | 
					  http_accept_language (~> 2.1)
 | 
				
			||||||
  httplog (~> 1.5.0)
 | 
					  httplog (~> 1.5.0)
 | 
				
			||||||
  i18n-tasks (~> 0.9)
 | 
					  i18n-tasks (~> 0.9)
 | 
				
			||||||
@@ -762,11 +763,11 @@ DEPENDENCIES
 | 
				
			|||||||
  redcarpet (~> 3.5)
 | 
					  redcarpet (~> 3.5)
 | 
				
			||||||
  redis (~> 4.4)
 | 
					  redis (~> 4.4)
 | 
				
			||||||
  redis-namespace (~> 1.8)
 | 
					  redis-namespace (~> 1.8)
 | 
				
			||||||
  rqrcode (~> 2.0)
 | 
					  rqrcode (~> 2.1)
 | 
				
			||||||
  rspec-rails (~> 5.0)
 | 
					  rspec-rails (~> 5.0)
 | 
				
			||||||
  rspec-sidekiq (~> 3.1)
 | 
					  rspec-sidekiq (~> 3.1)
 | 
				
			||||||
  rspec_junit_formatter (~> 0.4)
 | 
					  rspec_junit_formatter (~> 0.4)
 | 
				
			||||||
  rubocop (~> 1.19)
 | 
					  rubocop (~> 1.20)
 | 
				
			||||||
  rubocop-rails (~> 2.11)
 | 
					  rubocop-rails (~> 2.11)
 | 
				
			||||||
  ruby-progressbar (~> 1.11)
 | 
					  ruby-progressbar (~> 1.11)
 | 
				
			||||||
  sanitize (~> 6.0)
 | 
					  sanitize (~> 6.0)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,7 +59,7 @@ class Account < ApplicationRecord
 | 
				
			|||||||
  )
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  USERNAME_RE   = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
 | 
					  USERNAME_RE   = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
 | 
				
			||||||
  MENTION_RE    = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[a-z0-9]+)?)/i
 | 
					  MENTION_RE    = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[[:word:]\.\-]+[[:word:]]+)?)/i
 | 
				
			||||||
  URL_PREFIX_RE = /\Ahttp(s?):\/\/[^\/]+/
 | 
					  URL_PREFIX_RE = /\Ahttp(s?):\/\/[^\/]+/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  include AccountAssociations
 | 
					  include AccountAssociations
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
// Note: You must restart bin/webpack-dev-server for changes to take effect
 | 
					// Note: You must restart bin/webpack-dev-server for changes to take effect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { merge } = require('webpack-merge');
 | 
					const { merge } = require('webpack-merge');
 | 
				
			||||||
const sharedConfig = require('./shared.js');
 | 
					const sharedConfig = require('./shared');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = merge(sharedConfig, {
 | 
					module.exports = merge(sharedConfig, {
 | 
				
			||||||
  mode: 'development',
 | 
					  mode: 'development',
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
								
							@@ -14,7 +14,7 @@
 | 
				
			|||||||
    "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
 | 
					    "test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
 | 
				
			||||||
    "test:lint:js": "eslint --ext=js . --cache",
 | 
					    "test:lint:js": "eslint --ext=js . --cache",
 | 
				
			||||||
    "test:lint:sass": "sass-lint -v",
 | 
					    "test:lint:sass": "sass-lint -v",
 | 
				
			||||||
    "test:jest": "cross-env NODE_ENV=test jest --coverage"
 | 
					    "test:jest": "cross-env NODE_ENV=test jest"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "repository": {
 | 
					  "repository": {
 | 
				
			||||||
    "type": "git",
 | 
					    "type": "git",
 | 
				
			||||||
@@ -27,6 +27,7 @@
 | 
				
			|||||||
    "not dead"
 | 
					    "not dead"
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "jest": {
 | 
					  "jest": {
 | 
				
			||||||
 | 
					    "testEnvironment": "jsdom",
 | 
				
			||||||
    "projects": [
 | 
					    "projects": [
 | 
				
			||||||
      "<rootDir>/app/javascript/mastodon"
 | 
					      "<rootDir>/app/javascript/mastodon"
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@@ -154,7 +155,7 @@
 | 
				
			|||||||
    "requestidlecallback": "^0.3.0",
 | 
					    "requestidlecallback": "^0.3.0",
 | 
				
			||||||
    "reselect": "^4.0.0",
 | 
					    "reselect": "^4.0.0",
 | 
				
			||||||
    "rimraf": "^3.0.2",
 | 
					    "rimraf": "^3.0.2",
 | 
				
			||||||
    "sass": "^1.38.0",
 | 
					    "sass": "^1.38.2",
 | 
				
			||||||
    "sass-loader": "^10.2.0",
 | 
					    "sass-loader": "^10.2.0",
 | 
				
			||||||
    "stacktrace-js": "^2.0.2",
 | 
					    "stacktrace-js": "^2.0.2",
 | 
				
			||||||
    "stringz": "^2.1.0",
 | 
					    "stringz": "^2.1.0",
 | 
				
			||||||
@@ -171,19 +172,19 @@
 | 
				
			|||||||
    "webpack-cli": "^3.3.12",
 | 
					    "webpack-cli": "^3.3.12",
 | 
				
			||||||
    "webpack-merge": "^5.8.0",
 | 
					    "webpack-merge": "^5.8.0",
 | 
				
			||||||
    "wicg-inert": "^3.1.1",
 | 
					    "wicg-inert": "^3.1.1",
 | 
				
			||||||
    "ws": "^8.2.0"
 | 
					    "ws": "^8.2.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@testing-library/jest-dom": "^5.14.1",
 | 
					    "@testing-library/jest-dom": "^5.14.1",
 | 
				
			||||||
    "@testing-library/react": "^12.0.0",
 | 
					    "@testing-library/react": "^12.0.0",
 | 
				
			||||||
    "babel-eslint": "^10.1.0",
 | 
					    "babel-eslint": "^10.1.0",
 | 
				
			||||||
    "babel-jest": "^27.0.6",
 | 
					    "babel-jest": "^27.1.0",
 | 
				
			||||||
    "eslint": "^7.32.0",
 | 
					    "eslint": "^7.32.0",
 | 
				
			||||||
    "eslint-plugin-import": "~2.24.1",
 | 
					    "eslint-plugin-import": "~2.24.2",
 | 
				
			||||||
    "eslint-plugin-jsx-a11y": "~6.4.1",
 | 
					    "eslint-plugin-jsx-a11y": "~6.4.1",
 | 
				
			||||||
    "eslint-plugin-promise": "~5.1.0",
 | 
					    "eslint-plugin-promise": "~5.1.0",
 | 
				
			||||||
    "eslint-plugin-react": "~7.24.0",
 | 
					    "eslint-plugin-react": "~7.25.1",
 | 
				
			||||||
    "jest": "^26.6.3",
 | 
					    "jest": "^27.1.0",
 | 
				
			||||||
    "raf": "^3.4.1",
 | 
					    "raf": "^3.4.1",
 | 
				
			||||||
    "react-intl-translations-manager": "^5.0.3",
 | 
					    "react-intl-translations-manager": "^5.0.3",
 | 
				
			||||||
    "react-test-renderer": "^16.14.0",
 | 
					    "react-test-renderer": "^16.14.0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,6 +42,24 @@ RSpec.describe ProcessMentionsService, type: :service do
 | 
				
			|||||||
        expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once
 | 
					        expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    context 'with an IDN TLD' do
 | 
				
			||||||
 | 
					      let(:remote_user) { Fabricate(:account, username: 'foo', protocol: :activitypub, domain: 'xn--y9a3aq.xn--y9a3aq', inbox_url: 'http://example.com/inbox') }
 | 
				
			||||||
 | 
					      let(:status) { Fabricate(:status, account: account, text: "Hello @foo@հայ.հայ") }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      before do
 | 
				
			||||||
 | 
					        stub_request(:post, remote_user.inbox_url)
 | 
				
			||||||
 | 
					        subject.call(status)
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'creates a mention' do
 | 
				
			||||||
 | 
					        expect(remote_user.mentions.where(status: status).count).to eq 1
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'sends activity to the inbox' do
 | 
				
			||||||
 | 
					        expect(a_request(:post, remote_user.inbox_url)).to have_been_made.once
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  context 'Temporarily-unreachable ActivityPub user' do
 | 
					  context 'Temporarily-unreachable ActivityPub user' do
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user