scribe/spec/models/gist_params_spec.cr
Edward Loveall defec9319e
Handle gists with file extensions
Somehow, in my Gist Proxy code 7518a035b1 I never accounted for gist
ids with file extensions. For example: `def123.js` instead of plain
`def123`. This is now fixed and articles with those kinds of gists in
them work now.

Reference article:
https://medium.com/neat-tips-tricks/ocaml-continuation-explained-3b73839
b679f
2022-04-04 20:32:42 -04:00

44 lines
1 KiB
Crystal

require "../spec_helper"
describe GistParams do
it "extracts params from the gist url" do
url = "https://gist.github.com/user/1D?file=example.txt"
params = GistParams.extract_from_url(url)
params.id.should eq("1D")
params.filename.should eq("example.txt")
end
describe "when gist file has a file extension" do
it "extracts params from the gist url" do
url = "https://gist.github.com/user/1d.js"
params = GistParams.extract_from_url(url)
params.id.should eq("1d")
end
end
describe "when no file param exists" do
it "does not extract a filename" do
url = "https://gist.github.com/user/1D"
params = GistParams.extract_from_url(url)
params.id.should eq("1D")
params.filename.should be_nil
end
end
describe "when the URL is not a gist URL" do
it "raises a MissingGistId exeption" do
url = "https://example.com"
expect_raises(GistParams::MissingGistId, message: "https://example.com") do
GistParams.extract_from_url(url)
end
end
end
end