Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sqlite3
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
俞永鹏
node-sqlite3
Commits
7f34eb06
Commit
7f34eb06
authored
Sep 08, 2010
by
Orlando Vazquez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pull out insertMany into a common test lib
parent
8710ae28
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
179 additions
and
9 deletions
+179
-9
common.js
tests/lib/common.js
+40
-0
test-affected-rows.js
tests/test-affected-rows.js
+13
-1
test-last-inserted-id.js
tests/test-last-inserted-id.js
+6
-8
test-statement-step.js
tests/test-statement-step.js
+120
-0
No files found.
tests/lib/common.js
0 → 100644
View file @
7f34eb06
exports
.
insertMany
=
function
(
db
,
table
,
fields
,
rows
,
callback
)
{
var
columns_fragment
=
fields
.
join
(
","
);
var
placeholders_fragment
=
[];
var
i
=
fields
.
length
;
while
(
i
--
)
{
placeholders_fragment
.
push
(
'?'
);
}
placeholders_fragment
=
placeholders_fragment
.
join
(
", "
);
var
sql
=
'INSERT INTO '
+
table
+
' ('
+
columns_fragment
+
')'
+
' VALUES ('
+
placeholders_fragment
+
')'
;
var
i
=
rows
.
length
;
var
statement
;
function
doStep
(
i
)
{
statement
.
bindArray
(
rows
[
i
],
function
()
{
statement
.
step
(
function
(
error
,
row
)
{
if
(
error
)
throw
error
;
statement
.
reset
();
if
(
i
)
{
doStep
(
--
i
);
}
else
{
statement
.
finalize
(
function
()
{
callback
();
});
}
});
});
}
db
.
prepare
(
sql
,
function
(
error
,
stmt
)
{
statement
=
stmt
;
doStep
(
--
i
);
});
}
tests/test-affected-rows.js
View file @
7f34eb06
...
@@ -59,7 +59,19 @@ var tests = [
...
@@ -59,7 +59,19 @@ var tests = [
var
updateSQL
var
updateSQL
=
'UPDATE table1 SET name="o hai"'
;
=
'UPDATE table1 SET name="o hai"'
;
insertRows
(
self
.
db
,
10
,
function
()
{
common
.
insertMany
(
self
.
db
,
'table1'
,
[
'name'
],
[[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
],
[
'o hai'
]],
function
()
{
self
.
db
.
prepare
(
updateSQL
self
.
db
.
prepare
(
updateSQL
,
{
affectedRows
:
true
}
,
{
affectedRows
:
true
}
,
updateStatementCreated
);
,
updateStatementCreated
);
...
...
tests/test-last-inserted-id.js
View file @
7f34eb06
...
@@ -4,6 +4,7 @@ path = require('path');
...
@@ -4,6 +4,7 @@ path = require('path');
TestSuite
=
require
(
'async-testing/async_testing'
).
TestSuite
;
TestSuite
=
require
(
'async-testing/async_testing'
).
TestSuite
;
sqlite
=
require
(
'sqlite3_bindings'
);
sqlite
=
require
(
'sqlite3_bindings'
);
common
=
require
(
'./lib/common'
);
puts
=
sys
.
puts
;
puts
=
sys
.
puts
;
inspect
=
sys
.
inspect
;
inspect
=
sys
.
inspect
;
...
@@ -46,17 +47,14 @@ var tests = [
...
@@ -46,17 +47,14 @@ var tests = [
createTestTable
(
self
.
db
,
createTestTable
(
self
.
db
,
function
()
{
function
()
{
var
insertSQL
common
.
insertMany
(
self
.
db
,
'table1'
=
'INSERT INTO table1 (id, name) VALUES (100, "first post!")'
;
,
[
'id'
,
'name'
]
,
[
[
100
,
"first post!"
]
]
self
.
db
.
prepareAndStep
(
insertSQL
,
function
(
error
,
row
)
{
,
function
()
{
if
(
error
)
throw
error
;
assert
.
ok
(
!
row
,
"Row was trueish, but should be falseish"
);
self
.
db
.
prepare
(
'INSERT INTO table1 (name) VALUES ("orlando")'
self
.
db
.
prepare
(
'INSERT INTO table1 (name) VALUES ("orlando")'
,
{
affectedRows
:
true
,
lastInsertRowID
:
true
}
,
{
affectedRows
:
true
,
lastInsertRowID
:
true
}
,
createStatement
);
,
createStatement
);
});
});
});
});
});
});
...
...
tests/test-statement-step.js
0 → 100644
View file @
7f34eb06
sys
=
require
(
'sys'
);
fs
=
require
(
'fs'
);
path
=
require
(
'path'
);
common
=
require
(
'./lib/common'
);
TestSuite
=
require
(
'async-testing/async_testing'
).
TestSuite
;
sqlite
=
require
(
'sqlite3_bindings'
);
puts
=
sys
.
puts
;
inspect
=
sys
.
inspect
;
var
name
=
"Fetching all results"
;
var
suite
=
exports
[
name
]
=
new
TestSuite
(
name
);
function
createTestTable
(
db
,
callback
)
{
db
.
prepare
(
'CREATE TABLE table1 (id INTEGER, name TEXT, age FLOAT)'
,
function
(
error
,
createStatement
)
{
if
(
error
)
throw
error
;
createStatement
.
step
(
function
(
error
,
row
)
{
if
(
error
)
throw
error
;
callback
();
});
});
}
var
testRows
=
[
[
1
,
"foo"
,
9
]
,
[
2
,
"bar"
,
8
]
,
[
3
,
"baz"
,
7
]
,
[
4
,
"quux"
,
6
]
,
[
5
,
"juju"
,
5
]
];
var
testRowsExpected
=
[
{
id
:
5
,
name
:
'juju'
,
age
:
5
}
,
{
id
:
4
,
name
:
'quux'
,
age
:
6
}
,
{
id
:
3
,
name
:
'baz'
,
age
:
7
}
,
{
id
:
2
,
name
:
'bar'
,
age
:
8
}
,
{
id
:
1
,
name
:
'foo'
,
age
:
9
}
];
var
tests
=
[
{
'insert a row with lastinsertedid'
:
function
(
assert
,
finished
)
{
var
self
=
this
;
self
.
db
.
open
(
':memory:'
,
function
(
error
)
{
function
selectStatementPrepared
(
error
,
statement
)
{
if
(
error
)
throw
error
;
statement
.
fetchAll
(
function
(
error
,
rows
)
{
if
(
error
)
throw
error
;
assert
.
deepEqual
(
testRowsExpected
,
rows
);
self
.
db
.
close
(
function
()
{
finished
();
});
});
}
createTestTable
(
self
.
db
,
function
()
{
function
insertRows
(
db
,
rows
,
callback
)
{
var
i
=
rows
.
length
;
db
.
prepare
(
'INSERT INTO table1 (id, name, age) VALUES (?, ?, ?)'
,
function
(
error
,
statement
)
{
function
doStep
(
i
)
{
statement
.
bindArray
(
rows
[
i
],
function
()
{
statement
.
step
(
function
(
error
,
row
)
{
if
(
error
)
throw
error
;
assert
.
ok
(
!
row
,
"Row should be unset"
);
statement
.
reset
();
if
(
i
)
{
doStep
(
--
i
);
}
else
{
statement
.
finalize
(
function
()
{
callback
();
});
}
});
});
}
doStep
(
--
i
);
});
}
var
selectSQL
=
'SELECT * from table1'
;
common
.
insertMany
(
self
.
db
,
'table1'
,
[
'id'
,
'name'
,
'age'
],
testRows
,
function
()
{
self
.
db
.
prepare
(
selectSQL
,
selectStatementPrepared
);
});
});
});
}
}
];
// order matters in our tests
for
(
var
i
=
0
,
il
=
tests
.
length
;
i
<
il
;
i
++
)
{
suite
.
addTests
(
tests
[
i
]);
}
var
currentTest
=
0
;
var
testCount
=
tests
.
length
;
suite
.
setup
(
function
(
finished
,
test
)
{
this
.
db
=
new
sqlite
.
Database
();
finished
();
});
suite
.
teardown
(
function
(
finished
)
{
if
(
this
.
db
)
this
.
db
.
close
(
function
(
error
)
{
finished
();
});
++
currentTest
==
testCount
;
});
if
(
module
==
require
.
main
)
{
suite
.
runTests
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment