# frozen_string_literal: true RSpec.describe SidebarUrl do it "validates external URLs" do expect( SidebarUrl.new( icon: "link", name: "external", value: "https://www.test.com/discourse-test", ).valid?, ).to eq(true) expect( SidebarUrl.new( icon: "link", name: "categories", value: "http://#{Discourse.current_hostname}/pub/test", ).valid?, ).to eq(true) expect( SidebarUrl.new( icon: "link", name: "external", value: "https://www.test.com/" + "a" * 979, ).valid?, ).to eq(true) expect( SidebarUrl.new( icon: "link", name: "external", value: "https://www.test.com/" + "a" * 980, ).valid?, ).to eq(false) end it "sets external flag" do expect( SidebarUrl.create!(icon: "link", name: "categories", value: "/categories").external, ).to be false expect( SidebarUrl.create!( icon: "link", name: "categories", value: "http://#{Discourse.current_hostname}/categories", ).external, ).to be false expect( SidebarUrl.create!( icon: "link", name: "categories", value: "https://#{Discourse.current_hostname}/categories", ).external, ).to be false expect( SidebarUrl.create!( icon: "link", name: "categories", value: "https://www.test.com/discourse-test", ).external, ).to be true end end