diff --git a/src/shared/methods.js b/src/shared/methods.js index 395420767d..2db30991ea 100644 --- a/src/shared/methods.js +++ b/src/shared/methods.js @@ -12,7 +12,7 @@ export function fire ( eventName, data ) { } export function observe ( key, callback, options ) { - var group = ( options && options.defer ) ? this._observers.pre : this._observers.post; + var group = ( options && options.defer ) ? this._observers.post : this._observers.pre; ( group[ key ] || ( group[ key ] = [] ) ).push( callback ); diff --git a/test/generator/index.js b/test/generator/index.js index 6ca442623b..ccce7e259e 100644 --- a/test/generator/index.js +++ b/test/generator/index.js @@ -135,14 +135,14 @@ describe( 'generate', () => { assert.htmlEqual( target.innerHTML, config.html ); } + Object.assign = Object_assign; + if ( config.test ) { config.test( assert, component, target, window ); } else { component.destroy(); assert.equal( target.innerHTML, '' ); } - - Object.assign = Object_assign; }) .catch( err => { Object.assign = Object_assign; diff --git a/test/generator/samples/observe-deferred/_config.js b/test/generator/samples/observe-deferred/_config.js new file mode 100644 index 0000000000..8ccca0d2ab --- /dev/null +++ b/test/generator/samples/observe-deferred/_config.js @@ -0,0 +1,22 @@ +export default { + 'skip-ssr': true, + + data: { + value: 'hello!' + }, + + html: ` +

hello!

+

hello!

+ `, + + test ( assert, component, target ) { + component.set({ value: 'goodbye!' }); + assert.htmlEqual( target.innerHTML, ` +

goodbye!

+

goodbye!

+ ` ); + + component.destroy(); + } +}; diff --git a/test/generator/samples/observe-deferred/main.html b/test/generator/samples/observe-deferred/main.html new file mode 100644 index 0000000000..365d427f4d --- /dev/null +++ b/test/generator/samples/observe-deferred/main.html @@ -0,0 +1,14 @@ +

{{value}}

+

+ + \ No newline at end of file