mirror of
https://github.com/zyphlar/doorlock.git
synced 2024-04-03 21:36:03 +00:00
Start fleshing out card update code.
- Use node config, - Add logger
This commit is contained in:
10
src/models/cards.js
Normal file
10
src/models/cards.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const axios = require('axios')
|
||||
const config = require('config')
|
||||
|
||||
class Cards {
|
||||
static update() {
|
||||
return axios.get(config.get('cardApi'))
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Cards
|
||||
9
src/models/cards.test.js
Normal file
9
src/models/cards.test.js
Normal file
@@ -0,0 +1,9 @@
|
||||
const Cards = require('./cards')
|
||||
|
||||
describe('models/cards', () => {
|
||||
describe('.update', () => {
|
||||
test('should fetch list of RFID cards', () => {
|
||||
return Cards.update().then(cards => expect(cards).toEqual())
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -1,5 +1,9 @@
|
||||
const config = require('config')
|
||||
const logger = require('../utils/logger')
|
||||
const tessel = require('tessel')
|
||||
const constants = require('../../config/constants')
|
||||
|
||||
const DOOR_OPEN_DELAY = config.get('openDelay')
|
||||
|
||||
// const fs = require('fs')
|
||||
// const path = require('path')
|
||||
|
||||
@@ -8,21 +12,23 @@ const constants = require('../../config/constants')
|
||||
|
||||
class Door {
|
||||
static open() {
|
||||
logger.log('OPEN DOOR')
|
||||
|
||||
// TODO: trigger door opening...
|
||||
tessel.led[2].on()
|
||||
tessel.led[3].on()
|
||||
|
||||
return new Promise(resolve => {
|
||||
setTimeout(() => {
|
||||
// TODO: trigger door closing
|
||||
Door.close()
|
||||
resolve()
|
||||
}, constants.DOOR_OPEN_DELAY)
|
||||
}, DOOR_OPEN_DELAY)
|
||||
})
|
||||
}
|
||||
|
||||
static close() {
|
||||
console.log('CLOSE DOOR')
|
||||
tessel.led[2].off()
|
||||
logger.log('CLOSE DOOR')
|
||||
tessel.led[3].off()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,9 +7,8 @@ describe('models/door', () => {
|
||||
describe('.open', () => {
|
||||
test('opens door', () => {
|
||||
jest.spyOn(Door, 'close')
|
||||
// Door.close = jest.fn()
|
||||
return Door.open().then(() => {
|
||||
expect(tessel.led[2].on).toBeCalled()
|
||||
expect(tessel.led[3].on).toBeCalled()
|
||||
expect(Door.close).toBeCalled()
|
||||
})
|
||||
})
|
||||
@@ -18,7 +17,7 @@ describe('models/door', () => {
|
||||
describe('.close', () => {
|
||||
test('closes door', () => {
|
||||
Door.close()
|
||||
expect(tessel.led[2].off).toBeCalled()
|
||||
expect(tessel.led[3].off).toBeCalled()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
10
src/utils/logger.js
Normal file
10
src/utils/logger.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const config = require('config')
|
||||
const ENV = config.get('env')
|
||||
|
||||
class Logger {
|
||||
log() {
|
||||
ENV !== 'test' && console.log(...arguments)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = new Logger()
|
||||
Reference in New Issue
Block a user