docbrown/spec/system/user/user_edits_extensions_spec.rb
Chien-Wei Huang (Michael) f7a9f0d2b4
validate payment pointer (#11702)
* Add validation for payment_pointer and clean its space before save

* Add test for payment_pointer

* fix payment pointer regexp

* fix test

* Remove space with strip

Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>

* Remove redundant test

* Refactor clean_payment_pointer to strip_payment_pointer
- Move callback from before_save to before_validation

* Refactor PAYMENT_POINTER_REGEXP

* style: remove last comment in regexp

* fix typo

Co-authored-by: Jacob Herrington <jacobherringtondeveloper@gmail.com>
2020-12-04 12:00:25 -05:00

69 lines
1.8 KiB
Ruby

require "rails_helper"
RSpec.describe "User edits their extensions", type: :system, js: true do
let(:user) { create(:user) }
let(:github_response_body) do
[
{
"id" => 1_296_269,
"node_id" => "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"name" => "Hello-World",
"full_name" => "octocat/Hello-World"
},
]
end
before do
sign_in user
stub_request(:get, "https://api.github.com/user/repos?per_page=100")
.to_return(status: 200, body: github_response_body.to_json, headers: { "Content-Type" => "application/json" })
end
describe "Stackbit" do
before do
visit user_settings_path
end
it "has connect-to-stackbit prompt" do
click_link "Extensions"
expect(page).to have_text("Connect to Stackbit")
end
it "has connected-to-stackbit prompt if already integrated" do
create(:doorkeeper_access_token, resource_owner: user)
click_link "Extensions"
expect(page).to have_text("Connected to Stackbit")
end
end
describe "Feed" do
before do
visit user_settings_path(:extensions)
end
it "fails if the feed URL is invalid" do
stub_request(:get, "https://medium.com/feed/alkdmksadksa")
.to_return(status: 200, body: "not an xml feed")
fill_in "user[feed_url]", with: "https://medium.com/feed/alkdmksadksa"
click_on "Submit Feed Settings"
expect(page).to have_text("Feed url is not a valid RSS/Atom feed")
end
end
describe "PaymentPointer" do
before do
visit user_settings_path(:extensions)
end
it "fails if the payment pointer is invalid" do
fill_in "user[payment_pointer]", with: "invalid_example/value"
click_on "Save Web Monetization Settings"
expect(page).to have_text("Payment pointer is invalid")
end
end
end