scribe/spec/classes/gist_scanner_spec.cr

103 lines
2.6 KiB
Crystal

require "../spec_helper"
describe GistScanner do
it "returns gist ids from paragraphs" do
iframe = PostResponse::IFrame.new(
PostResponse::MediaResource.new(
href: "https://gist.github.com/user/123ABC",
iframeSrc: "",
iframeWidth: 0,
iframeHeight: 0
)
)
paragraphs = [
PostResponse::Paragraph.new(
text: "Check out this gist:",
type: PostResponse::ParagraphType::P,
markups: [] of PostResponse::Markup,
iframe: nil,
layout: nil,
metadata: nil
),
PostResponse::Paragraph.new(
text: "",
type: PostResponse::ParagraphType::IFRAME,
markups: [] of PostResponse::Markup,
iframe: iframe,
layout: nil,
metadata: nil
),
]
result = GistScanner.new(paragraphs).scan
result.should eq(["https://gist.github.com/user/123ABC"])
end
it "returns ids without the file parameters" do
iframe = PostResponse::IFrame.new(
PostResponse::MediaResource.new(
href: "https://gist.github.com/user/123ABC?file=example.txt",
iframeSrc: "",
iframeWidth: 0,
iframeHeight: 0
)
)
paragraphs = [
PostResponse::Paragraph.new(
text: "",
type: PostResponse::ParagraphType::IFRAME,
markups: [] of PostResponse::Markup,
iframe: iframe,
layout: nil,
metadata: nil
),
]
result = GistScanner.new(paragraphs).scan
result.should eq(["https://gist.github.com/user/123ABC"])
end
it "returns a unique list of ids" do
iframe1 = PostResponse::IFrame.new(
PostResponse::MediaResource.new(
href: "https://gist.github.com/user/123ABC?file=example.txt",
iframeSrc: "",
iframeWidth: 0,
iframeHeight: 0
)
)
iframe2 = PostResponse::IFrame.new(
PostResponse::MediaResource.new(
href: "https://gist.github.com/user/123ABC?file=other.txt",
iframeSrc: "",
iframeWidth: 0,
iframeHeight: 0
)
)
paragraphs = [
PostResponse::Paragraph.new(
text: "",
type: PostResponse::ParagraphType::IFRAME,
markups: [] of PostResponse::Markup,
iframe: iframe1,
layout: nil,
metadata: nil
),
PostResponse::Paragraph.new(
text: "",
type: PostResponse::ParagraphType::IFRAME,
markups: [] of PostResponse::Markup,
iframe: iframe2,
layout: nil,
metadata: nil
),
]
result = GistScanner.new(paragraphs).scan
result.should eq(["https://gist.github.com/user/123ABC"])
end
end