Skip to content

Commit

Permalink
feat(MockRobot): introduce MockRobot
Browse files Browse the repository at this point in the history
with BasicControlCapability
  • Loading branch information
alexkn authored and Hypfer committed Mar 14, 2021
1 parent 565191c commit 96c4bae
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/core/ValetudoRobotFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ const Robots = {
"RoborockS6MaxVValetudoRobot": require("../robots/roborock/RoborockS6MaxVValetudoRobot"),
"Dreame1CValetudoRobot": require("../robots/dreame/Dreame1CValetudoRobot"),
"DreameD9ValetudoRobot": require("../robots/dreame/DreameD9ValetudoRobot"),
"ViomiV7ValetudoRobot": require("../robots/viomi/ViomiV7ValetudoRobot")
"ViomiV7ValetudoRobot": require("../robots/viomi/ViomiV7ValetudoRobot"),
"MockRobot": require("../robots/mock/MockRobot")
};

//This is only exported so that we can autogenerate the supported robots overview for the docs
Expand Down
17 changes: 17 additions & 0 deletions lib/robots/mock/MockRobot.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const ValetudoRobot = require("../../core/ValetudoRobot");
const capabilities = require("./capabilities");

class MockRobot extends ValetudoRobot {
/**
*
* @param {object} options
* @param {import("../../Configuration")} options.config
*/
constructor(options) {
super(options);

this.registerCapability(new capabilities.MockBasicControlCapability({robot: this}));
}
}

module.exports = MockRobot;
34 changes: 34 additions & 0 deletions lib/robots/mock/capabilities/MockBasicControlCapability.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const BasicControlCapability = require("../../../core/capabilities/BasicControlCapability");
const entities = require("../../../entities");
const stateAttrs = entities.state.attributes;

class MockBasicControlCapability extends BasicControlCapability {
constructor(options) {
super(options);

this.StateAttr = new stateAttrs.StatusStateAttribute({
value: stateAttrs.StatusStateAttribute.VALUE.DOCKED,
flag: stateAttrs.StatusStateAttribute.FLAG.NONE
});

this.robot.state.upsertFirstMatchingAttribute(this.StateAttr);
}

async start() {
this.StateAttr.value = stateAttrs.StatusStateAttribute.VALUE.CLEANING;
}

async stop() {
this.StateAttr.value = stateAttrs.StatusStateAttribute.VALUE.IDLE;
}

async pause() {
this.StateAttr.value = stateAttrs.StatusStateAttribute.VALUE.PAUSED;
}

async home() {
this.StateAttr.value = stateAttrs.StatusStateAttribute.VALUE.DOCKED;
}
}

module.exports = MockBasicControlCapability;
3 changes: 3 additions & 0 deletions lib/robots/mock/capabilities/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
MockBasicControlCapability: require("./MockBasicControlCapability")
};

0 comments on commit 96c4bae

Please sign in to comment.