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')
|
||||
|
||||
Travis.IndexErrorController = Em.Controller.extend()
|
||||
|
||||
require 'controllers/accounts'
|
||||
require 'controllers/build'
|
||||
require 'controllers/builds'
|
||||
|
|
|
@ -140,7 +140,10 @@ require 'travis/model'
|
|||
if repos.length > 0
|
||||
repos[0]
|
||||
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) ->
|
||||
# if slug then slug else 'repos'
|
||||
|
|
|
@ -252,9 +252,15 @@ Travis.RepoRoute = Ember.Route.extend
|
|||
Travis.Repo.fetchBySlug(slug)
|
||||
|
||||
actions:
|
||||
error: ->
|
||||
Ember.run.next this, ->
|
||||
@render('repos/not_found', outlet: 'main')
|
||||
error: (error) ->
|
||||
# if error throwed has a slug (ie. it was probably repo not found)
|
||||
# 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
|
||||
renderTemplate: ->
|
||||
|
|
|
@ -6,4 +6,8 @@ module "Router",
|
|||
|
||||
test 'renders notFound template when URL can\t be found', ->
|
||||
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
|
||||
this.responseText = { repos: repos }
|
||||
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
|
||||
this.responseText = { repos: $.select(repos, (repository) -> repository.slug.indexOf(search) > -1).toArray() }
|
||||
else if settings.data.member
|
||||
|
|
Loading…
Reference in New Issue
Block a user