| @ -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 | |||