Skip to content

Commit

Permalink
feat(MockRobot): Add MockCurrentStatisticsCapability + fix MockConsum…
Browse files Browse the repository at this point in the history
…ableMonitoringCapability
  • Loading branch information
Hypfer committed Nov 20, 2021
1 parent 102a078 commit bda0b1a
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 1 deletion.
1 change: 1 addition & 0 deletions backend/lib/robots/mock/MockRobot.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class MockRobot extends ValetudoRobot {
this.registerCapability(new capabilities.MockMappingPassCapability({robot: this}));
this.registerCapability(new capabilities.MockVoicePackManagementCapability({robot: this}));
this.registerCapability(new capabilities.MockManualControlCapability({robot: this}));
this.registerCapability(new capabilities.MockCurrentStatisticsCapability({robot: this}));

// Raise events to make them visible in the UI
options.valetudoEventStore.raise(new DustBinFullValetudoEvent({}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,38 @@ class MockConsumableMonitoringCapability extends ConsumableMonitoringCapability
throw new Error("No such consumable");
}
}

getProperties() {
return {
availableConsumables: [
{
type: ConsumableStateAttribute.TYPE.BRUSH,
subType: ConsumableStateAttribute.SUB_TYPE.MAIN,
unit: ConsumableStateAttribute.UNITS.MINUTES
},
{
type: ConsumableStateAttribute.TYPE.BRUSH,
subType: ConsumableStateAttribute.SUB_TYPE.SIDE_RIGHT,
unit: ConsumableStateAttribute.UNITS.MINUTES
},
{
type: ConsumableStateAttribute.TYPE.FILTER,
subType: ConsumableStateAttribute.SUB_TYPE.MAIN,
unit: ConsumableStateAttribute.UNITS.MINUTES
},
{
type: ConsumableStateAttribute.TYPE.SENSOR,
subType: ConsumableStateAttribute.SUB_TYPE.ALL,
unit: ConsumableStateAttribute.UNITS.MINUTES
},
{
type: ConsumableStateAttribute.TYPE.MOP,
subType: ConsumableStateAttribute.SUB_TYPE.MAIN,
unit: ConsumableStateAttribute.UNITS.PERCENT
}
]
};
}
}

module.exports = MockConsumableMonitoringCapability;
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
const CurrentStatisticsCapability = require("../../../core/capabilities/CurrentStatisticsCapability");
const ValetudoDataPoint = require("../../../entities/core/ValetudoDataPoint");

/**
* @extends CurrentStatisticsCapability<import("../MockRobot")>
*/
class MockCurrentStatisticsCapability extends CurrentStatisticsCapability {
/**
* @param {object} options
* @param {import("../MockRobot")} options.robot
*/
constructor(options) {
super(options);

this.currentStatistics = {
time: 24*60,
area: 63*10000
};
}

/**
* @return {Promise<Array<ValetudoDataPoint>>}
*/
async getStatistics() {
return [
new ValetudoDataPoint({
type: ValetudoDataPoint.TYPES.TIME,
value: this.currentStatistics.time
}),
new ValetudoDataPoint({
type: ValetudoDataPoint.TYPES.AREA,
value: this.currentStatistics.area
})
];
}

getProperties() {
return {
availableStatistics: [
ValetudoDataPoint.TYPES.TIME,
ValetudoDataPoint.TYPES.AREA
]
};
}
}

module.exports = MockCurrentStatisticsCapability;
3 changes: 2 additions & 1 deletion backend/lib/robots/mock/capabilities/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module.exports = {
MockBasicControlCapability: require("./MockBasicControlCapability"),
MockCarpetModeControlCapability: require("./MockCarpetModeControlCapability"),
MockConsumableMonitoringCapability: require("./MockConsumableMonitoringCapability"),
MockCurrentStatisticsCapability: require("./MockCurrentStatisticsCapability"),
MockDoNotDisturbCapability: require("./MockDoNotDisturbCapability"),
MockFanSpeedControlCapability: require("./MockFanSpeedControlCapability"),
MockGoToLocationCapability: require("./MockGoToLocationCapability"),
Expand All @@ -21,5 +22,5 @@ module.exports = {
MockVoicePackManagementCapability: require("./MockVoicePackManagementCapability"),
MockWaterUsageControlCapability: require("./MockWaterUsageControlCapability"),
MockWifiConfigurationCapability: require("./MockWifiConfigurationCapability"),
MockZoneCleaningCapability: require("./MockZoneCleaningCapability"),
MockZoneCleaningCapability: require("./MockZoneCleaningCapability")
};

0 comments on commit bda0b1a

Please sign in to comment.