|
|
@ -1,37 +1,67 @@ |
|
|
|
require "./spec_helper" |
|
|
|
|
|
|
|
|
|
|
|
describe SalesBackend do |
|
|
|
it "can render status" do |
|
|
|
get "/" |
|
|
|
String.from_json(Global.response.not_nil!.body).should eq "OK" |
|
|
|
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) |
|
|
|
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 "/user", nil, usr.to_json |
|
|
|
Global.response.not_nil!.status_code.should eq(500) |
|
|
|
|
|
|
|
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) |
|
|
|
get "/user/address", headers |
|
|
|
Global.response.not_nil!.status_code.should eq(200) |
|
|
|
Global.response.not_nil!.body.should eq("null") |
|
|
|
new_address_str = %([ |
|
|
|
{ |
|
|
|
"name": "String", |
|
|
|
"address1": "String", |
|
|
|
"address2": "{type: String, nilable: true}", |
|
|
|
"postcode": "00000", |
|
|
|
"city": "String", |
|
|
|
"country": 2 |
|
|
|
} |
|
|
|
]) |
|
|
|
post "/user/address", headers, new_address_str |
|
|
|
Global.response.not_nil!.status_code.should eq(200) |
|
|
|
get "/user/address", headers |
|
|
|
Global.response.not_nil!.status_code.should eq(200) |
|
|
|
address_state = Array(Address).from_json(Global.response.not_nil!.body) |
|
|
|
expected_address_state = Array(Address).from_json(new_address_str) |
|
|
|
(address_state.to_json==expected_address_state.to_json).should be_true |
|
|
|
get "/user/tokens", 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) |
|
|
|
|
|
|
|
get "/user/address", headers |
|
|
|
Global.response.not_nil!.status_code.should eq(403) |
|
|
|
|
|
|
|
get "/user/tokens", headers |
|
|
|
Global.response.not_nil!.status_code.should eq(403) |
|
|
|
end |
|
|
|
end |