# Setting up Trek's Pretender for Demo / Development

**URL:** <https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099>\
**Category:** Uncategorized\
**Created:** [August 18, 2014, 5:41pm UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099 "2014-08-18T17:41:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![brendanoh](https://avatars.discourse-cdn.com/v4/letter/b/94ad74/32.png) [@brendanoh](https://discuss.emberjs.com/u/brendanoh)\
**Post date:** [August 18, 2014, 5:41pm UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099/1 "2014-08-18T17:41:49Z")

</div>

I know this seems simplistic but I don’t see in the README for pretender where we are supposed to put our mock server code. Basically, where do we put the code below in an Ember-cli app?

```
var PHOTOS = {
  "10": {
    id: 10,
    src: 'http://media.giphy.com/media/UdqUo8xvEcvgA/giphy.gif'
  },
  "42": {
    id: 42,
    src: 'http://media0.giphy.com/media/Ko2pyD26RdYRi/giphy.gif'
  }
};

var server = new Pretender(function(){
  this.get('/photos', function(request){
    var all = JSON.stringify(Object.keys(PHOTOS).map(function(k){return PHOTOS[k]}))
    return [200, {"Content-Type": "application/json"}, all]
  });

  this.get('/photos/:id', function(request){
    return [200, {"Content-Type": "application/json"}, JSON.stringify(PHOTOS[request.params.id])]
  });
});

```

I want to run the mock server for development and demo purposes not just for testing. I know I am missing something simple but I do not see any explanation on how to do this.

---

<div class="post-metadata">

**Author:** ![BradWheel](https://avatars.discourse-cdn.com/v4/letter/b/b782af/32.png) [@BradWheel](https://discuss.emberjs.com/u/BradWheel)\
**Post date:** [August 19, 2014, 4:49pm UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099/2 "2014-08-19T16:49:55Z")

</div>

+1. I’m using ember-cli-pretender and can’t find very much information on how to setup it up (where to place the server config, etc.). Any help would be much appreciated.

---

<div class="post-metadata">

**Author:** ![tcjr](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/tcjr/32/14655_2.png) [@tcjr](https://discuss.emberjs.com/u/tcjr)\
**Post date:** [October 6, 2014, 6:25pm UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099/3 "2014-10-06T18:25:52Z")

</div>

@brendanoh, @BradWheel Did you ever figure out a good way to do this?

---

<div class="post-metadata">

**Author:** ![lightblade](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/lightblade/32/15632_2.png) [@lightblade](https://discuss.emberjs.com/u/lightblade)\
**Post date:** [October 7, 2014, 4:04pm UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099/4 "2014-10-07T16:04:27Z")

</div>

How is that different from the http-mock in ember-cli?

---

<div class="post-metadata">

**Author:** ![eccegordo](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/eccegordo/32/14927_2.png) [@eccegordo](https://discuss.emberjs.com/u/eccegordo)\
**Post date:** [October 8, 2014, 2:44am UTC](https://discuss.emberjs.com/t/setting-up-treks-pretender-for-demo-development/6099/5 "2014-10-08T02:44:13Z")

</div>

Just guessing here but I think part of the difference is that Pretender intercepts your API calls. Where as a http-mock is really just an express server setup to run as your stubbed API so doing real AJAX behind the scenes. End effect is mostly the same. But the Pretender stuff is typically more tightly coupled to test cases such as integration tests testing very specific models and pages.

With http-mock it seems like you could build out a more extensive virtual API layer if you were so inclined.

For full on demo I personally would use http-mock. But write my tests with Pretender.
