Better tests

This commit is contained in:
2014-12-05 14:48:20 +01:00
parent 3941529d0d
commit 1a3f528731
11 changed files with 59 additions and 43 deletions
@@ -33,7 +33,8 @@ App.ProductOrdersController = Ember.ArrayController.extend
#data = @get('product_orders').map( (po)->po.serialize() ) #data = @get('product_orders').map( (po)->po.serialize() )
dataObject = order: {table_id: @get('controllers.table.model.id')} dataObject = order: {table_id: @get('controllers.table.model.id')}
@get('product_orders').forEach (product_order)-> dataObject['order'][product_order.get('product.id')] = product_order.get('quantity') @get('product_orders').forEach (product_order)-> dataObject['order'][product_order.get('product.id')] = product_order.get('quantity')
Ember.$.post "#{$data_host}/user/orders.json", dataObject Ember.$.post "#{$data_host}/user/orders.json", dataObject, (response) =>
@store.pushPayload('order', response) if response.order
@transitionToRoute 'active_list' @transitionToRoute 'active_list'
@get('product_orders').invoke 'unloadRecord' @get('product_orders').invoke 'unloadRecord'
+33 -29
View File
@@ -1,34 +1,38 @@
App.ApplicationSerializer = DS.ActiveModelSerializer.extend #App.ApplicationSerializer = DS.ActiveModelSerializer.extend
serializeBelongsTo: (record, json, relationship) -> #serializeBelongsTo: (record, json, relationship) ->
console.log "Serialize belongsTo #{record.toString()}" #console.log "Serialize belongsTo #{record.toString()}"
key = relationship.key #key = relationship.key
belongsTo = Ember.get(record, key) #belongsTo = Ember.get(record, key)
key = (if @keyForRelationship then @keyForRelationship(key, "belongsTo") else key) #key = (if @keyForRelationship then @keyForRelationship(key, "belongsTo") else key)
if relationship.options.embedded is "always" #if relationship.options.embedded is "always"
json[key] = belongsTo.serialize() #json[key] = belongsTo.serialize()
else #else
@_super record, json, relationship #@_super record, json, relationship
serializeHasMany: (record, json, relationship) -> #serializeHasMany: (record, json, relationship) ->
console.log "Serialize hasMany #{record.toString()}" #console.log "Serialize hasMany #{record.toString()}"
key = relationship.key #key = relationship.key
hasMany = Ember.get(record, key) #hasMany = Ember.get(record, key)
relationshipType = DS.RelationshipChange.determineRelationshipType(record.constructor, relationship) #relationshipType = DS.RelationshipChange.determineRelationshipType(record.constructor, relationship)
if relationship.options.embedded is "always" #if relationship.options.embedded is "always"
if hasMany and relationshipType is "manyToNone" or relationshipType is "manyToMany" or relationshipType is "manyToOne" #if hasMany and relationshipType is "manyToNone" or relationshipType is "manyToMany" or relationshipType is "manyToOne"
json[key] = [] #json[key] = []
hasMany.forEach (item, index) -> #hasMany.forEach (item, index) ->
json[key].push item.serialize() #json[key].push item.serialize()
else #else
@_super record, json, relationship #@_super record, json, relationship
App.ApplicationSerializer = DS.ActiveModelSerializer.extend()
App.ApplicationStore = DS.Store.extend App.ApplicationStore = DS.Store.extend
adapter: DS.RESTAdapter.extend #adapter: DS.RESTAdapter.extend
#host: $data_host
#namespace: 'user'
## user underscored paths
#pathForType: (type)->
#decamelized = Ember.String.decamelize(type)
#Ember.String.pluralize(decamelized)
#headers:
#Accept: 'application/json'
adapter: DS.ActiveModelAdapter.extend
host: $data_host host: $data_host
namespace: 'user' namespace: 'user'
# user underscored paths
pathForType: (type)->
decamelized = Ember.String.decamelize(type)
Ember.String.pluralize(decamelized)
headers:
Accept: 'application/json'
@@ -6,15 +6,15 @@ header.top-menu
if list.id if list.id
link-to 'index' class="top-menu-logo with-list" link-to 'index' class="top-menu-logo with-list"
= image_tag 'user/logo-small.png' = image_tag 'user/logo-small.png'
App.MenuItemView route="active_list" = view "menu-item" route="active_list"
App.MenuItemView route='table' route_param=list.table.id = view "menu-item" route="table" route_param=list.table.id
App.MenuItemListNeedsHelpView = view "menu-item-list-needs-help"
App.MenuItemListNeedsPaymentView = view "menu-item-list-needs-payment"
else else
link-to 'index' class="top-menu-logo without-list" link-to 'index' class="top-menu-logo without-list"
= image_tag 'user/logo-small.png' = image_tag 'user/logo-small.png'
App.MenuItemScanQrView = view "menu-item-scan-qr"
App.MenuItemProductOrdersView = view "menu-item-product-orders"
if list if list
.extra-info .extra-info
.supplier-info-row .supplier-info-row
@@ -1,6 +1,6 @@
.row .row
h2=t 'models.plural.list' h2=t 'models.plural.list'
each list in lists: App.ListIndexView contentBinding='list' each list in lists: = view "list-index" contentBinding='list'
.clearfix .clearfix
if hasMore if hasMore
button{action "showMore"}=t 'lists.show_more' button{action "showMore"}=t 'lists.show_more'
@@ -1,2 +1,2 @@
each table in tables each table in tables
a{action selectQr table}: img src="/table_qr_image.svg?table_id=#{unbound table._id}" a{action "selectQr" table}: img src="/table_qr_image.svg?table_id=#{unbound table._id}"
+2 -2
View File
@@ -28,8 +28,8 @@ module Users
list = List.from_table( table, current_user ) list = List.from_table( table, current_user )
end end
order = list.place_order products: converted_order, user: current_user order = list.place_order products: converted_order, user: current_user
# render json: order, serializer: OrderSerializer render json: order, serializer: OrderSerializer
render nothing: true #render nothing: true
end end
end end
end end
@@ -3,7 +3,7 @@ class UserExtendedSupplierSerializer < Qwaiter::Serializer
embed :ids, include: true embed :ids, include: true
attributes :extended_version, :open, :name, :orders_in_process_count, :orders_placed_count attributes :extended_version, :open, :name, :orders_in_process_count, :orders_placed_count
has_many :product_categories has_many :product_categories
has_many :products #has_many :products only product in category!!!!!!
def extended_version def extended_version
true true
+2
View File
@@ -4,6 +4,8 @@ module Qwaiter
def broadcast(message) def broadcast(message)
@uri ||= URI.parse(Qwaiter.event_host) @uri ||= URI.parse(Qwaiter.event_host)
Net::HTTP.post_form(@uri, message: message.merge(ext: {auth_token: '6be65f9b5e7d21b8ca8de4ccfad5ba24cf40d440b370af79'}).to_json) Net::HTTP.post_form(@uri, message: message.merge(ext: {auth_token: '6be65f9b5e7d21b8ca8de4ccfad5ba24cf40d440b370af79'}).to_json)
rescue => e
Rails.logger.error("[FAYE] #{e.message}")
end end
end end
end end
@@ -64,8 +64,8 @@ end
step "the user order :product_name should be in the order list with price" do |product_name| step "the user order :product_name should be in the order list with price" do |product_name|
concerning_product = Product.find_by_name(product_name) concerning_product = Product.find_by_name(product_name)
#ember_order = ember_store['product_orders'].find{|po| po['product_id'] == concerning_product.id} #ember_order = ember_store['product_orders'].find{|po| po['product_id'] == concerning_product.id}
ember_order = ember_find('product_order', concerning_product.id) #ember_order = ember_find('product_order', concerning_product.id)
binding.pry ember_order = ember_all('product_order').find{|po| po['product_id'] == concerning_product.id }
quantity = ember_order['quantity'] quantity = ember_order['quantity']
order_price = quantity * concerning_product.price order_price = quantity * concerning_product.price
within '.product-orders .product-order' do within '.product-orders .product-order' do
@@ -9,6 +9,7 @@ end
step "the user clicks on the lists link in the side menu" do step "the user clicks on the lists link in the side menu" do
page.execute_script %|$('.side-menu-lists').click()| page.execute_script %|$('.side-menu-lists').click()|
sleep 1
end end
step "the user clicks on the about link in the side menu" do step "the user clicks on the about link in the side menu" do
@@ -16,6 +17,7 @@ step "the user clicks on the about link in the side menu" do
end end
step "the user clicks on the active list link in the side menu" do step "the user clicks on the active list link in the side menu" do
binding.pry
page.execute_script %|$('.side-menu-active-list').click()| page.execute_script %|$('.side-menu-active-list').click()|
end end
+7
View File
@@ -23,6 +23,13 @@ module SpecEmberHelpers
SCRIPT SCRIPT
end end
def ember_all(typeKey)
h = page.evaluate_script <<-SCRIPT
$s = App.__container__.lookup('store:main');
$s.all('#{typeKey}').invoke('serialize')
SCRIPT
end
def js_path def js_path
page.evaluate_script 'location.pathname + location.hash' page.evaluate_script 'location.pathname + location.hash'
end end