Implementation of a generic backend of eshop in Crystal
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 

37 lignes
1.1 KiB

require "./spec_helper"
describe SalesBackend do
it "can render status" do
get "/"
String.from_json(Global.response.not_nil!.body).should eq "OK"
end
it "can add a user able to log in and out" do
Dir.mkdir_p Statics.data_path+"user"
usr = User.new("dummy@domain.com")
usr.password_hash = "mywordismypassword"
post "/user", nil, usr.to_json
Global.response.not_nil!.status_code.should eq(200)
String.from_json(Global.response.not_nil!.body).should eq "OK"
post "/login", nil, usr.to_json
Global.response.not_nil!.status_code.should eq(200)
uuid=UUID.from_json(Global.response.not_nil!.body).not_nil!
headers = HTTP::Headers.new
headers["user"]=usr.email.to_s
headers["api_token"]=uuid.to_s
get "/user/", headers
Global.response.not_nil!.status_code.should eq(200)
usr.tokens = Array(UUID).new
usr.tokens.not_nil!.push uuid
post "/logout", nil, usr.to_json
Global.response.not_nil!.status_code.should eq(200)
get "/user/", headers
Global.response.not_nil!.status_code.should eq(403)
end
end