Fix handling not existing repos
Also ensure that we don't break it again with an integration test.
This commit is contained in:
parent
a8784a58fa
commit
e5749b0629
|
@ -48,6 +48,8 @@ Travis.FirstSyncController = Em.Controller.extend
|
||||||
|
|
||||||
isSyncing: Ember.computed.alias('user.isSyncing')
|
isSyncing: Ember.computed.alias('user.isSyncing')
|
||||||
|
|
||||||
|
Travis.IndexErrorController = Em.Controller.extend()
|
||||||
|
|
||||||
require 'controllers/accounts'
|
require 'controllers/accounts'
|
||||||
require 'controllers/build'
|
require 'controllers/build'
|
||||||
require 'controllers/builds'
|
require 'controllers/builds'
|
||||||
|
|
|
@ -140,7 +140,10 @@ require 'travis/model'
|
||||||
if repos.length > 0
|
if repos.length > 0
|
||||||
repos[0]
|
repos[0]
|
||||||
else
|
else
|
||||||
@fetch(slug: slug).then (repos) -> Ember.get(repos, 'firstObject')
|
@fetch(slug: slug).then (repos) ->
|
||||||
|
error = new Error('repo not found')
|
||||||
|
error.slug = slug
|
||||||
|
Ember.get(repos, 'firstObject') || throw(error)
|
||||||
|
|
||||||
# buildURL: (slug) ->
|
# buildURL: (slug) ->
|
||||||
# if slug then slug else 'repos'
|
# if slug then slug else 'repos'
|
||||||
|
|
|
@ -252,9 +252,15 @@ Travis.RepoRoute = Ember.Route.extend
|
||||||
Travis.Repo.fetchBySlug(slug)
|
Travis.Repo.fetchBySlug(slug)
|
||||||
|
|
||||||
actions:
|
actions:
|
||||||
error: ->
|
error: (error) ->
|
||||||
Ember.run.next this, ->
|
# if error throwed has a slug (ie. it was probably repo not found)
|
||||||
@render('repos/not_found', outlet: 'main')
|
# set the slug on index.error controller to allow to properly
|
||||||
|
# display the repo information
|
||||||
|
if error.slug
|
||||||
|
this.controllerFor('index.error').set('slug', error.slug)
|
||||||
|
|
||||||
|
# bubble to the top
|
||||||
|
return true
|
||||||
|
|
||||||
Travis.IndexRoute = Ember.Route.extend
|
Travis.IndexRoute = Ember.Route.extend
|
||||||
renderTemplate: ->
|
renderTemplate: ->
|
||||||
|
|
|
@ -6,4 +6,8 @@ module "Router",
|
||||||
|
|
||||||
test 'renders notFound template when URL can\t be found', ->
|
test 'renders notFound template when URL can\t be found', ->
|
||||||
visit('/somehing/something/something/.../dark/side/..../something/something/something/.../complete').then ->
|
visit('/somehing/something/something/.../dark/side/..../something/something/something/.../complete').then ->
|
||||||
equal('The requested page was not found.', $('#main').text().trim())
|
equal($('#main').text().trim(), 'The requested page was not found.')
|
||||||
|
|
||||||
|
test 'renders repo not found information when repo can\'t be found', ->
|
||||||
|
visit('/what-is-this/i-dont-even').then ->
|
||||||
|
equal($('#main').text().trim(), 'The repository at what-is-this/i-dont-even was not found.')
|
||||||
|
|
|
@ -77,7 +77,9 @@ $.mockjax
|
||||||
if !settings.data
|
if !settings.data
|
||||||
this.responseText = { repos: repos }
|
this.responseText = { repos: repos }
|
||||||
else if slug = settings.data.slug
|
else if slug = settings.data.slug
|
||||||
this.responseText = { repos: [$.detect(repos, (repository) -> repository.slug == slug)] }
|
repo = $.detect(repos, (repository) -> repository.slug == slug)
|
||||||
|
repos = if repo then [repo] else []
|
||||||
|
this.responseText = { repos: repos }
|
||||||
else if search = settings.data.search
|
else if search = settings.data.search
|
||||||
this.responseText = { repos: $.select(repos, (repository) -> repository.slug.indexOf(search) > -1).toArray() }
|
this.responseText = { repos: $.select(repos, (repository) -> repository.slug.indexOf(search) > -1).toArray() }
|
||||||
else if settings.data.member
|
else if settings.data.member
|
||||||
|
|
Loading…
Reference in New Issue
Block a user