mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-23 15:48:11 -05:00
Made the SuperModel a little bit more clever about handling duplicate loaded models.
This commit is contained in:
parent
f1bf160755
commit
98752159ca
2 changed files with 22 additions and 1 deletions
|
@ -119,7 +119,8 @@ module.exports = class SuperModel extends Backbone.Model
|
|||
for model, i in collection.models
|
||||
cachedModel = @getModelByURL(model.getURL())
|
||||
if cachedModel
|
||||
collection.models[i] = cachedModel
|
||||
clone = $.extend true, {}, model.attributes
|
||||
cachedModel.set(clone, {silent: true})
|
||||
else
|
||||
@registerModel(model)
|
||||
collection
|
||||
|
|
|
@ -50,3 +50,23 @@ describe 'SuperModel', ->
|
|||
_.defer ->
|
||||
expect(triggered).toBe(true)
|
||||
done()
|
||||
|
||||
describe 'collection loading', ->
|
||||
it 'combines models which are fetched from multiple sources', ->
|
||||
s = new SuperModel()
|
||||
|
||||
c1 = new ComponentsCollection()
|
||||
c1.url = '/db/level.component?v=1'
|
||||
s.loadCollection(c1, 'components')
|
||||
|
||||
c2 = new ComponentsCollection()
|
||||
c2.url = '/db/level.component?v=2'
|
||||
s.loadCollection(c2, 'components')
|
||||
|
||||
request = jasmine.Ajax.requests.sendResponses({
|
||||
'/db/level.component?v=1': [{"_id":"id","name":"Something"}]
|
||||
'/db/level.component?v=2': [{"_id":"id","description":"This is something"}]
|
||||
})
|
||||
|
||||
expect(s.models['/db/level.component/id'].get('name')).toBe('Something')
|
||||
expect(s.models['/db/level.component/id'].get('description')).toBe('This is something')
|
||||
|
|
Loading…
Reference in a new issue