Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
public
/
sequelize
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
不要怂,就是干,撸起袖子干!
Commit 4069d41f
authored
Dec 15, 2011
by
sdepold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
splitter model-factory specs into general and dialect specific
1 parent
c9994c31
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
98 deletions
spec/model-factory.spec.js
spec/mysql/model-factory.spec.js
spec/model-factory.spec.js
0 → 100644
View file @
4069d41
var
config
=
require
(
"../config/config"
)
,
Sequelize
=
require
(
"../../index"
)
,
sequelize
=
new
Sequelize
(
config
.
database
,
config
.
username
,
config
.
password
,
{
logging
:
false
})
,
Helpers
=
new
(
require
(
"../config/helpers"
))(
sequelize
)
describe
(
'ModelFactory'
,
function
()
{
beforeEach
(
function
()
{
Helpers
.
sync
()
})
afterEach
(
function
()
{
Helpers
.
drop
()
})
var
User
=
sequelize
.
define
(
'User'
,
{
age
:
Sequelize
.
INTEGER
,
name
:
Sequelize
.
STRING
,
bio
:
Sequelize
.
TEXT
})
describe
(
'constructor'
,
function
()
{
it
(
"uses the passed model name as tablename if freezeTableName"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
freezeTableName
:
true
})
expect
(
User
.
tableName
).
toEqual
(
'User'
)
})
it
(
"uses the pluralized modelname as tablename unless freezeTableName"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
freezeTableName
:
false
})
expect
(
User
.
tableName
).
toEqual
(
'Users'
)
})
it
(
"attaches class and instance methods"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
classMethods
:
{
doSmth
:
function
(){
return
1
}
},
instanceMethods
:
{
makeItSo
:
function
(){
return
2
}}
})
expect
(
User
.
doSmth
).
toBeDefined
()
expect
(
User
.
doSmth
()).
toEqual
(
1
)
expect
(
User
.
makeItSo
).
toBeUndefined
()
expect
(
User
.
build
().
makeItSo
).
toBeDefined
()
expect
(
User
.
build
().
makeItSo
()).
toEqual
(
2
)
})
it
(
"throws an error if 2 autoIncrements are passed"
,
function
()
{
expect
(
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{
userid
:
{
type
:
Sequelize
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
userscore
:
{
type
:
Sequelize
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
})
}).
toThrow
(
'Invalid model definition. Only one autoincrement field allowed.'
)
})
})
describe
(
'find'
,
function
()
{
beforeEach
(
function
()
{
Helpers
.
Factories
.
User
({
name
:
'user'
,
bio
:
'foobar'
},
null
,
2
)
})
it
(
"should make aliased attributes available"
,
function
()
{
Helpers
.
async
(
function
(
done
)
{
User
.
find
({
where
:
'id = 1'
,
attributes
:
[
'id'
,
[
'name'
,
'username'
]]
}).
success
(
function
(
user
)
{
expect
(
user
.
username
).
toEqual
(
'user'
)
done
()
})
})
})
})
describe
(
'all'
,
function
()
{
beforeEach
(
function
()
{
Helpers
.
Factories
.
User
({
name
:
'user'
,
bio
:
'foobar'
},
null
,
2
)
})
it
(
"should return all users"
,
function
()
{
Helpers
.
async
(
function
(
done
)
{
User
.
all
().
on
(
'success'
,
function
(
users
)
{
done
()
expect
(
users
.
length
).
toEqual
(
2
)
}).
on
(
'failure'
,
function
(
err
)
{
console
.
log
(
err
)
})
})
})
})
describe
(
'create with options'
,
function
()
{
var
Person
=
sequelize
.
define
(
'Person'
,
{
name
:
Sequelize
.
STRING
,
options
:
Sequelize
.
TEXT
})
it
(
'should allow the creation of an object with options as attribute'
,
function
()
{
var
options
=
JSON
.
stringify
({
foo
:
'bar'
,
bar
:
'foo'
})
Helpers
.
Factories
.
Model
(
'Person'
,
{
name
:
'John Doe'
,
options
:
options
},
function
(
people
)
{
expect
(
people
[
0
].
options
).
toEqual
(
options
)
})
})
})
describe
(
'min'
,
function
()
{
it
(
"should return the min value"
,
function
()
{
for
(
var
i
=
2
;
i
<
5
;
i
++
)
Helpers
.
Factories
.
User
({
age
:
i
})
Helpers
.
async
(
function
(
done
)
{
User
.
min
(
'age'
).
on
(
'success'
,
function
(
min
)
{
expect
(
min
).
toEqual
(
2
);
done
()
})
})
})
})
describe
(
'max'
,
function
()
{
it
(
"should return the max value"
,
function
()
{
for
(
var
i
=
2
;
i
<=
5
;
i
++
)
Helpers
.
Factories
.
User
({
age
:
i
})
Helpers
.
async
(
function
(
done
)
{
User
.
max
(
'age'
).
on
(
'success'
,
function
(
max
)
{
expect
(
max
).
toEqual
(
5
);
done
()
})
})
})
})
})
spec/mysql/model-factory.spec.js
View file @
4069d41
...
...
@@ -55,39 +55,6 @@ describe('ModelFactory', function() {
var
User
=
sequelize
.
define
(
'User'
+
config
.
rand
(),
{},
{
paranoid
:
true
,
underscored
:
true
})
expect
(
User
.
attributes
).
toEqual
({
id
:
"INT NOT NULL auto_increment PRIMARY KEY"
,
deleted_at
:
"DATETIME"
,
updated_at
:
"DATETIME NOT NULL"
,
created_at
:
"DATETIME NOT NULL"
})
})
it
(
"uses the passed model name as tablename if freezeTableName"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
freezeTableName
:
true
})
expect
(
User
.
tableName
).
toEqual
(
'User'
)
})
it
(
"uses the pluralized modelname as tablename unless freezeTableName"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
freezeTableName
:
false
})
expect
(
User
.
tableName
).
toEqual
(
'Users'
)
})
it
(
"attaches class and instance methods"
,
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{},
{
classMethods
:
{
doSmth
:
function
(){
return
1
}
},
instanceMethods
:
{
makeItSo
:
function
(){
return
2
}}
})
expect
(
User
.
doSmth
).
toBeDefined
()
expect
(
User
.
doSmth
()).
toEqual
(
1
)
expect
(
User
.
makeItSo
).
toBeUndefined
()
expect
(
User
.
build
().
makeItSo
).
toBeDefined
()
expect
(
User
.
build
().
makeItSo
()).
toEqual
(
2
)
})
it
(
"throws an error if 2 autoIncrements are passed"
,
function
()
{
expect
(
function
()
{
var
User
=
sequelize
.
define
(
'User'
,
{
userid
:
{
type
:
Sequelize
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
userscore
:
{
type
:
Sequelize
.
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
},
})
}).
toThrow
(
'Invalid model definition. Only one autoincrement field allowed.'
)
})
})
describe
(
'primaryKeys'
,
function
()
{
...
...
@@ -99,69 +66,4 @@ describe('ModelFactory', function() {
expect
(
User
.
primaryKeys
).
toEqual
({
"foo"
:
"VARCHAR(255) PRIMARY KEY"
})
})
})
describe
(
'find'
,
function
()
{
beforeEach
(
function
()
{
Helpers
.
Factories
.
User
({
name
:
'user'
,
bio
:
'foobar'
},
null
,
2
)
})
it
(
"should make aliased attributes available"
,
function
()
{
Helpers
.
async
(
function
(
done
)
{
User
.
find
({
where
:
'id = 1'
,
attributes
:
[
'id'
,
[
'name'
,
'username'
]]
}).
success
(
function
(
user
)
{
expect
(
user
.
username
).
toEqual
(
'user'
)
done
()
})
})
})
})
describe
(
'all'
,
function
()
{
beforeEach
(
function
()
{
Helpers
.
Factories
.
User
({
name
:
'user'
,
bio
:
'foobar'
},
null
,
2
)
})
it
(
"should return all users"
,
function
()
{
Helpers
.
async
(
function
(
done
)
{
User
.
all
().
on
(
'success'
,
function
(
users
)
{
done
()
expect
(
users
.
length
).
toEqual
(
2
)
}).
on
(
'failure'
,
function
(
err
)
{
console
.
log
(
err
)
})
})
})
})
describe
(
'create with options'
,
function
()
{
var
Person
=
sequelize
.
define
(
'Person'
,
{
name
:
Sequelize
.
STRING
,
options
:
Sequelize
.
TEXT
})
it
(
'should allow the creation of an object with options as attribute'
,
function
()
{
var
options
=
JSON
.
stringify
({
foo
:
'bar'
,
bar
:
'foo'
})
Helpers
.
Factories
.
Model
(
'Person'
,
{
name
:
'John Doe'
,
options
:
options
},
function
(
people
)
{
expect
(
people
[
0
].
options
).
toEqual
(
options
)
})
})
})
describe
(
'min'
,
function
()
{
it
(
"should return the min value"
,
function
()
{
for
(
var
i
=
2
;
i
<
5
;
i
++
)
Helpers
.
Factories
.
User
({
age
:
i
})
Helpers
.
async
(
function
(
done
)
{
User
.
min
(
'age'
).
on
(
'success'
,
function
(
min
)
{
expect
(
min
).
toEqual
(
2
);
done
()
})
})
})
})
describe
(
'max'
,
function
()
{
it
(
"should return the max value"
,
function
()
{
for
(
var
i
=
2
;
i
<=
5
;
i
++
)
Helpers
.
Factories
.
User
({
age
:
i
})
Helpers
.
async
(
function
(
done
)
{
User
.
max
(
'age'
).
on
(
'success'
,
function
(
max
)
{
expect
(
max
).
toEqual
(
5
);
done
()
})
})
})
})
})
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment