From ce6862e6a0184ad452ebb1f686250ca3c227f838 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 29 Mar 2013 22:15:19 +0100 Subject: [PATCH 1/3] Always poll for changes when user is syncing --- assets/scripts/app/auth.coffee | 4 ++++ assets/scripts/app/models/user.coffee | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/assets/scripts/app/auth.coffee b/assets/scripts/app/auth.coffee index 28b0d9e6..bfd30825 100644 --- a/assets/scripts/app/auth.coffee +++ b/assets/scripts/app/auth.coffee @@ -13,6 +13,10 @@ Travis.setLocale Travis.default_locale @set('state', 'signed-out') @set('user', undefined) + user = Travis.__container__.lookup('controller:currentUser').get('content') + if user.get('stateManager.currentPath') == 'rootState.loaded.updated.uncommitted' + user.send('rollback') + user.unloadRecord() Travis.__container__.lookup('controller:currentUser').set('content', null) Travis.__container__.lookup('router:main').send('afterSignOut') diff --git a/assets/scripts/app/models/user.coffee b/assets/scripts/app/models/user.coffee index a6f2779f..242ffb93 100644 --- a/assets/scripts/app/models/user.coffee +++ b/assets/scripts/app/models/user.coffee @@ -24,8 +24,8 @@ require 'travis/model' init: -> @_super() - # TODO: the next line fails, check this - #@poll() if @get('isSyncing') + Ember.run.next this, -> + @poll() if @get('isSyncing') Ember.run.next this, -> transaction = @get('store').transaction() From ac675e5918614a4cd52c2e0eaaf90a73315f1fe0 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 29 Mar 2013 22:53:57 +0100 Subject: [PATCH 2/3] Fix tests --- assets/scripts/spec/job_spec.coffee | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/assets/scripts/spec/job_spec.coffee b/assets/scripts/spec/job_spec.coffee index 9246e308..fa08bd9b 100644 --- a/assets/scripts/spec/job_spec.coffee +++ b/assets/scripts/spec/job_spec.coffee @@ -51,22 +51,20 @@ describe 'too long log', -> responseTime: 0 responseText: '1\n2\n3\n4\n5\n6\n7\n8\n9\n10' - Travis.OrderedLog.reopen - linesLimit: 5 + Log.LIMIT = 5 app 'travis-ci/travis-core/jobs/2' waitFor logRendered afterEach -> - Travis.OrderedLog.reopen - linesLimit: 5000 + Log.LIMIT = 10000 it 'is cut after given limit', -> displaysLog [ '12345' ] - expect( $('#log .cut').text() ).toEqual 'Log was too long to display. Download the the raw version to get the full log.' - expect( $('#log .cut a').attr('href') ).toEqual '/jobs/2/log.txt?deansi=true' + expect( $('#log-container .warning').text() ).toMatch /This log is too long to be displayed/ + expect( $('#log-container .warning a').attr('href') ).toEqual '/jobs/2/log.txt?deansi=true' From 17923af97310e36bcb23144e91ffda1b6ada6e73 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 29 Mar 2013 23:25:05 +0100 Subject: [PATCH 3/3] Fix expanding folds on firefox --- assets/scripts/app/views/application.coffee | 2 +- assets/scripts/app/views/log.coffee | 2 +- assets/scripts/spec/job_spec.coffee | 17 +++++++++++++++-- assets/scripts/spec/support/expectations.coffee | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/assets/scripts/app/views/application.coffee b/assets/scripts/app/views/application.coffee index 54f18c30..45d414e0 100644 --- a/assets/scripts/app/views/application.coffee +++ b/assets/scripts/app/views/application.coffee @@ -7,7 +7,7 @@ Travis.reopen @rerender() ).observes('templateName') - click: -> + click: (event) -> # TODO: this solves the case of closing menus and popups, # but I would like to rewrite it later, not sure how # yet, but this does not seem optimal diff --git a/assets/scripts/app/views/log.coffee b/assets/scripts/app/views/log.coffee index 68686b11..5bd671a7 100644 --- a/assets/scripts/app/views/log.coffee +++ b/assets/scripts/app/views/log.coffee @@ -83,7 +83,7 @@ Travis.reopen $('#log').on 'mouseenter', 'a', -> $(@).attr('href', '#L' + ($("#log p:visible").index(@parentNode) + 1)) - click: -> + click: (event) -> if (href = $(event.target).attr('href')) && matches = href?.match(/#L(\d+)$/) @lineNumberClicked(matches[1]) event.stopPropagation() diff --git a/assets/scripts/spec/job_spec.coffee b/assets/scripts/spec/job_spec.coffee index fa08bd9b..5736ad8d 100644 --- a/assets/scripts/spec/job_spec.coffee +++ b/assets/scripts/spec/job_spec.coffee @@ -3,7 +3,7 @@ describe 'on the "job" state', -> $.mockjax url: '/jobs/1/log?cors_hax=true' responseTime: 0 - responseText: 'log 1' + responseText: "First line\ncontent:travis_fold:start:install\r$ Install something\nInstalling something\ncontent:travis_fold:end:install\r$ End" app 'travis-ci/travis-core/jobs/1' @@ -41,9 +41,22 @@ describe 'on the "job" state', -> job: { href: '/travis-ci/travis-core/jobs/1', active: true } displaysLog [ - 'log 1' + 'First line', + '$ Install something', + 'Installing something', + '$ End' ] + it 'allows to expand folds', -> + waits 100 + runs -> + expect($('#fold-start-install').hasClass('open')).toBeFalsy() + $('#fold-start-install').click() + waits 20 + runs -> + expect($('#fold-start-install').hasClass('open')).toBeTruthy() + + describe 'too long log', -> beforeEach -> $.mockjax diff --git a/assets/scripts/spec/support/expectations.coffee b/assets/scripts/spec/support/expectations.coffee index 3cb12953..28034a59 100644 --- a/assets/scripts/spec/support/expectations.coffee +++ b/assets/scripts/spec/support/expectations.coffee @@ -41,7 +41,7 @@ expect(element.text()).toEqual data.message @displaysLog = (lines) -> - log = lines.join() + log = lines.join('') expect($('#log p').text().trim()).toEqual log @listsRepos = (items) ->