require 'cgi' require 'rails_helper' require 'securerandom' RSpec.describe 'Wiki API', type: :request do let!(:user) { create_member_user! } let!(:tn) { TagName.create!(name: 'spec_wiki_title') } let!(:page) do WikiPage.create!(tag_name: tn, created_user: user, updated_user: user) end describe 'GET /wiki' do it 'returns wiki pages with title' do get '/wiki' expect(response).to have_http_status(:ok) json = JSON.parse(response.body) expect(json).to be_a(Array) expect(json).not_to be_empty expect(json[0]).to have_key('title') expect(json.map { |p| p['title'] }).to include('spec_wiki_title') end end describe 'GET /wiki/title/:title' do it 'returns wiki page by title' do get "/wiki/title/#{CGI.escape('spec_wiki_title')}" expect(response).to have_http_status(:ok) json = JSON.parse(response.body) expect(json).to have_key('id') expect(json).to have_key('title') expect(json['id']).to eq(page.id) expect(json['title']).to eq('spec_wiki_title') end it 'returns 404 when not found' do get "/wiki/title/#{ CGI.escape('nope') }" expect(response).to have_http_status(:not_found) end end end