From 3dc708e4e4676d2772efbb52ad87109c812cd9a6 Mon Sep 17 00:00:00 2001 From: Andrew Fisher Date: Fri, 6 Dec 2019 16:41:38 +1100 Subject: [PATCH] feat(test): Added jest test spec for firmwares --- test/firmware.test.js | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 test/firmware.test.js diff --git a/test/firmware.test.js b/test/firmware.test.js new file mode 100644 index 0000000..778b171 --- /dev/null +++ b/test/firmware.test.js @@ -0,0 +1,60 @@ + +const firmware_path = '../lib/firmwares.json'; + +let firmwares; +let creators; + +const firmware_library = () => describe('1. Firmware library is correctly formed', () => { + // Check that all of the firmware lib works properly. + beforeAll(() => { + firmwares = require(firmware_path).firmwares; + }); + + + test('1.1 Firmware library should not be empty', () => { + expect(firmwares.length); + }); + + test('1.2 Firmware library should have all required fields populated', () => { + firmwares.forEach((firmware) => { + expect(firmware.name).toBeDefined(); + + // check if a firmata only or not + if (firmware.name.indexOf('Firmata') >= 0) { + expect(firmware.address).not.toBeDefined(); + } else { + expect(firmware.address).toBeDefined(); + } + + // ensure there is a location to get the firmware from + expect(firmware.repo || firmware.npm).toBeTruthy(); + }); + }); +}); + +const firmware_creator = () => describe('2. Ensure creators set up correctly', () => { + // run the creator checks + beforeAll(() => { + creators = require(firmware_path).creators; + }); + + + test('2.1 Creator list should not be empty', () => { + expect(creators.length); + }); + + test('2.2 Creator list has required fields', () => { + creators.forEach((creator) => { + expect(creator.id).toBeDefined(); + expect(parseInt(creator.id, 16) > 0).toBe(true); // is a number + expect(creator.gh).toBeDefined(); + expect(creator.name).toBeDefined(); + expect(creator.name.length > 0).toBe(true); + }); + }); +}); + +firmware_library(); +firmware_creator(); + +// module.exports.firmware_library = firmware_library;