const State = require('../State') class PackageAbsentState extends State { constructor(host, config) { if ( !host.packages ) { throw new Error(`Cannot apply package absent state to host ${host.name}: missing package manager API.`) } super(host, config) } async reverse() { return this._host.packages.install(this._config.package) } async check() { return !(await this._host.packages.is_installed(this._config.package)) } async apply() { return this._host.packages.uninstall(this._config.package) } failure_message() { return `The package "${this._config.package}" still exists on host "${this._host.name}."` } check_message() { return this.failure_message() } } module.exports = exports = PackageAbsentState