Fixing some bugs, adding pending test examples
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| class AccountsController < ApplicationController | ||||
|   before_action :set_account | ||||
|   before_action :set_webfinger_header | ||||
|  | ||||
|   def show | ||||
|     respond_to do |format| | ||||
| @@ -13,4 +14,12 @@ class AccountsController < ApplicationController | ||||
|   def set_account | ||||
|     @account = Account.find_by!(username: params[:username], domain: nil) | ||||
|   end | ||||
|  | ||||
|   def set_webfinger_header | ||||
|     response.headers['Link'] = "<#{webfinger_account_url}>; rel=\"lrdd\"; type=\"application/xrd+xml\"" | ||||
|   end | ||||
|  | ||||
|   def webfinger_account_url | ||||
|     webfinger_url(resource: "acct:#{@account.acct}@#{Rails.configuration.x.local_domain}") | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| class Api::SalmonController < ApplicationController | ||||
| class Api::SalmonController < ApiController | ||||
|   before_action :set_account | ||||
|  | ||||
|   def update | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| class Api::SubscriptionsController < ApplicationController | ||||
| class Api::SubscriptionsController < ApiController | ||||
|   before_action :set_account | ||||
|  | ||||
|   def show | ||||
|   | ||||
							
								
								
									
										3
									
								
								app/controllers/api_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								app/controllers/api_controller.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| class ApiController < ApplicationController | ||||
|   protect_from_forgery with: :null_session | ||||
| end | ||||
| @@ -4,7 +4,7 @@ Nokogiri::XML::Builder.new do |xml| | ||||
|     title      xml, @account.display_name | ||||
|     subtitle   xml, @account.note | ||||
|     updated_at xml, stream_updated_at | ||||
|     logo       xml, asset_url(@account.avatar.url(:medium)) | ||||
|     logo       xml, asset_url(@account.avatar.url(:medium, false)) | ||||
|  | ||||
|     author(xml) do | ||||
|       include_author xml, @account | ||||
|   | ||||
| @@ -3,7 +3,7 @@ Nokogiri::XML::Builder.new do |xml| | ||||
|     xml.Subject @canonical_account_uri | ||||
|     xml.Alias url_for_target(@account) | ||||
|     xml.Link(rel: 'http://webfinger.net/rel/profile-page', type: 'text/html', href: url_for_target(@account)) | ||||
|     xml.Link(rel: 'http://schemas.google.com/g/2010#updates-from', type: 'application/atom+xml', href: atom_user_stream_url(id: @account.id)) | ||||
|     xml.Link(rel: 'http://schemas.google.com/g/2010#updates-from', type: 'application/atom+xml', href: account_url(@account, format: 'atom')) | ||||
|     xml.Link(rel: 'salmon', href: api_salmon_url(@account.id)) | ||||
|     xml.Link(rel: 'magic-public-key', href: @magic_key) | ||||
|   end | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe FetchFeedService do | ||||
|   pending | ||||
|   subject { FetchFeedService.new } | ||||
|  | ||||
|   it 'fetches remote user\'s feed' | ||||
|   it 'processes the feed' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,12 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe FollowRemoteAccountService do | ||||
|   pending | ||||
|   subject { FollowRemoteAccountService.new } | ||||
|  | ||||
|   it 'returns nil if no such user can be resolved via webfinger' | ||||
|   it 'returns nil if the domain does not have webfinger' | ||||
|   it 'returns nil if remote user does not offer a hub URL' | ||||
|   it 'returns an already existing remote account' | ||||
|   it 'returns a new remote account' | ||||
|   it 'fills the remote account with profile information' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,9 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe FollowService do | ||||
|   pending | ||||
|   subject { FollowService.new } | ||||
|  | ||||
|   it 'creates a following relation' | ||||
|   it 'creates local account for remote user' | ||||
|   it 'sends follow to the remote user' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,10 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe PostStatusService do | ||||
|   pending | ||||
|   subject { PostStatusService.new } | ||||
|  | ||||
|   it 'creates a new status' | ||||
|   it 'creates a new response status' | ||||
|   it 'processes mentions' | ||||
|   it 'pings PuSH hubs' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe ProcessFeedService do | ||||
|   pending | ||||
|   subject { ProcessFeedService.new } | ||||
|  | ||||
|   it 'updates remote user\'s account information' | ||||
|   it 'creates local copies of all notes and comments' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,15 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe ProcessInteractionService do | ||||
|   pending | ||||
|   subject { ProcessInteractionService.new } | ||||
|  | ||||
|   it 'creates account for new remote user' | ||||
|   it 'updates account for existing remote user' | ||||
|   it 'ignores envelopes that do not address the local user' | ||||
|   it 'accepts a status that mentions the local user' | ||||
|   it 'accepts a status that is a reply to the local user\'s' | ||||
|   it 'accepts a favourite to a status by the local user' | ||||
|   it 'accepts a reblog of a status of the local user' | ||||
|   it 'accepts a follow of the local user' | ||||
|   it 'accepts an unfollow of the local user' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,22 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe ProcessMentionsService do | ||||
|   pending | ||||
|   let(:account)     { Fabricate(:account, username: 'alice') } | ||||
|   let(:remote_user) { Fabricate(:account, username: 'remote_user', domain: 'example.com', salmon_url: 'http://salmon.example.com') } | ||||
|   let(:status)      { Fabricate(:status, account: account, text: "Hello @#{remote_user.acct}") } | ||||
|  | ||||
|   subject { ProcessMentionsService.new } | ||||
|  | ||||
|   before do | ||||
|     stub_request(:post, remote_user.salmon_url) | ||||
|     subject.(status) | ||||
|   end | ||||
|  | ||||
|   it 'creates a mention' do | ||||
|     expect(remote_user.mentions.where(status: status).count).to eq 1 | ||||
|   end | ||||
|  | ||||
|   it 'posts to remote user\'s Salmon end point' do | ||||
|     expect(a_request(:post, remote_user.salmon_url)).to have_been_made | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe SendInteractionService do | ||||
|   pending | ||||
|   subject { SendInteractionService.new } | ||||
|  | ||||
|   it 'sends an XML envelope to the Salmon end point of remote user' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe SetupLocalAccountService do | ||||
|   pending | ||||
|   subject { SetupLocalAccountService.new } | ||||
|  | ||||
|   it 'creates a user' | ||||
|   it 'creates an account for the user' | ||||
| end | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| require 'rails_helper' | ||||
|  | ||||
| RSpec.describe UnfollowService do | ||||
|   pending | ||||
|   subject { UnfollowService.new } | ||||
|  | ||||
|   it 'destroys the following relation' | ||||
|   it 'sends remote interactionf or remote user' | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user