103 lines
2.6 KiB
Crystal
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
|