|
|
- 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 compare addresses" do
- address_str1 = Address.from_json %(
- {
- "name": "String",
- "address1": "String",
- "address2": "{type: String, nilable: true}",
- "postcode": "00001",
- "city": "String",
- "country": 2
- }
- )
- address_str2 = Address.from_json %(
- {
- "name": "String",
- "address1": "String",
- "address2": "{type: String, nilable: true}",
- "postcode": "00002",
- "city": "String",
- "country": 2
- }
- )
- address_str3 = Address.from_json %(
- {
- "name": "String",
- "address1": "String",
- "address2": "{type: String, nilable: true}",
- "postcode": "00003",
- "city": "String",
- "country": 2
- }
- )
- (address_str1<=>address_str1).should eq( 0)
- (address_str3<=>address_str2).should eq(1)
- (address_str1<=>address_str2).should eq(-1)
- 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 "/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
- delete "/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)
- address_state.size.should eq(0)
- 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
|