1 |
|
2 |
|
3 | var assert = require('assert');
|
4 | var after = require('after');
|
5 |
|
6 | var Model = require('../model');
|
7 |
|
8 | suite('Model#extend');
|
9 |
|
10 | var Post = Model({
|
11 | title: String
|
12 | }, { url_root: '/foobar' });
|
13 |
|
14 | test('extending should work', function() {
|
15 | var SuperPost = Post.extend();
|
16 | SuperPost.url_root = '/foobaz';
|
17 |
|
18 | assert.equal(Post.url_root, '/foobar');
|
19 | assert.equal(SuperPost.url_root, '/foobaz');
|
20 | });
|
21 |
|
22 | test('extend with additional schema', function() {
|
23 | var SuperPost = Post.extend({
|
24 | summary: String
|
25 | });
|
26 |
|
27 | var post = SuperPost();
|
28 |
|
29 | post.once('change title', function(val) {
|
30 | assert.equal(val, 'foobar');
|
31 | assert.equal(post.title, 'foobar');
|
32 | });
|
33 |
|
34 | post.once('change summary', function(val) {
|
35 | assert.equal(val, 'foobaz');
|
36 | assert.equal(post.summary, 'foobaz');
|
37 | });
|
38 |
|
39 | post.title = 'foobar';
|
40 | post.summary = 'foobaz';
|
41 | });
|
42 |
|