| @ -1,37 +1,67 @@ | |||||
| require "./spec_helper" | require "./spec_helper" | ||||
| describe SalesBackend do | describe SalesBackend do | ||||
| it "can render status" 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 | end | ||||
| it "can add a user able to log in and out" do | 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 | ||||
| end | end | ||||