ぼざクリタグ広場 https://hub.nizika.monster
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
1.1 KiB

  1. require 'cgi'
  2. require 'rails_helper'
  3. require 'securerandom'
  4. RSpec.describe 'Wiki API', type: :request do
  5. let!(:user) { create_user_for_wiki! }
  6. let!(:tn) { TagName.create!(name: 'spec_wiki_title') }
  7. let!(:page) do
  8. WikiPage.create!(tag_name: tn, created_user: user, updated_user: user)
  9. end
  10. describe 'GET /wiki' do
  11. it 'returns wiki pages with title' do
  12. get '/wiki'
  13. expect(response).to have_http_status(:ok)
  14. json = JSON.parse(response.body)
  15. expect(json).to be_a(Array)
  16. expect(json).not_to be_empty
  17. expect(json[0]).to have_key('title')
  18. expect(json.map { |p| p['title'] }).to include('spec_wiki_title')
  19. end
  20. end
  21. describe 'GET /wiki/title/:title' do
  22. it 'returns wiki page by title' do
  23. get "/wiki/title/#{CGI.escape('spec_wiki_title')}"
  24. expect(response).to have_http_status(:ok)
  25. json = JSON.parse(response.body)
  26. expect(json).to have_key('id')
  27. expect(json).to have_key('title')
  28. expect(json['id']).to eq(page.id)
  29. expect(json['title']).to eq('spec_wiki_title')
  30. end
  31. end
  32. end