This tests the existing state of TokenDao before additional modifications
are made. This commit also further refines the types introduced in a
previous commit.
This is also the first test written in Typescript.
* package.json.in (devDependencies): Add node, chai, and mocha types.
* src/server/token/TokenDao.ts (updateToken): `data` accepts null (as it
should). Do not conditionall add data to object (it doesn't matter for
later retrieval). Note nondeterminism with date. More concise syntax
for object fields.
* src/server/token/TokenQueryResult.ts: Make all fields readonly.
(TokenStatus): Date is no longer optional (see above mention).
* src/types/mongodb.d.ts: Remove generics (erroneously added).
(Collection)[update]: Remove 3-argument declaration (see comment).
* test/server/token/TokenDaoTest.ts: New test case.
This adds type information for both MongoCollection and some details about
the structure of the data itself as it is stored in the database.
* src/server/token/TokenDao.ts: Import types from TokenQueryResult.
(TokenType): Move to TokenQueryResult module.
(TokenData)[status]: string=>TokenStatus.
(TokenDao)[_collection]: Remove optional type specifier.
[_collection]: Make readonly.
[updateToken]: Use TokenStatus type for token_entry.
[getToken]: Add return type. Add type for query result. Remove useless
length check (no such field exists). Add types for variables.
[_getLatestToken]: Use interface instead of inline type definition.
[_getRequestedToken]: Use type definition for `data' instead of
`any'. Add type of variable.
* src/server/token/TokenQueryResult.ts: Define structure of data in Mongo.
* src/types/mongodb.d.ts: Add type information for methods used by TokenDao.
This is the first test of integrating typescript. I'm using the `export ='
syntax to keep imports the same using `require', but note that the `new'
keyword is now required for instantiation (whereas it was not with easejs).