scribe/spec/classes/gist_store_spec.cr

59 lines
1.5 KiB
Crystal

require "../spec_helper"
describe GistStore do
describe "#store_gist_file" do
describe "adds the gist file to the gist id" do
it "calls the github client" do
store = GistStore.new
file = GistFile.new(
filename: "filename",
content: "content",
raw_url: "raw_url"
)
store.store_gist_file("1", file)
store.store["1"].should eq([file])
end
end
end
describe "the gist does not exist in the store" do
it "returns a MissingGistFile" do
missing_file = MissingGistFile.new(id: "1", filename: "filename")
store = GistStore.new
file = store.get_gist_files(id: "1", filename: "filename")
file.should eq([missing_file])
end
end
describe "when a filename is given" do
it "returns the GistFile for that filename" do
store = GistStore.new
file1 = GistFile.new("one", "", "")
file2 = GistFile.new("two", "", "")
store.store["1"] = [file1, file2]
gists = store.get_gist_files(id: "1", filename: "one")
gists.should eq([file1])
gists.should_not contain([file2])
end
end
describe "when a filename is NOT given" do
it "returns all GistFiles" do
store = GistStore.new
file1 = GistFile.new("one", "", "")
file2 = GistFile.new("two", "", "")
store.store["1"] = [file1, file2]
gists = store.get_gist_files(id: "1", filename: nil)
gists.should eq([file1, file2])
end
end
end