Как изменить дату и время моего компьютерного устройства, используя транспортир
Мне нужно проверить, истек ли срок действия объявлений через 6 месяцев. В настоящее время я успешно проверяю, является ли объявление правильным или нет.
Через 6 месяцев его необходимо удалить из определенной вкладки. Проблема заключается в следующем: как я могу симулировать системное время через 6 месяцев с помощью транспортира?
2 ответа
Думайте об этом по-другому.
Смоделируйте ответ HTTP, отправляемый вашим приложением, содержащий объявления, и установите желаемую дату, используя protractor-http-mock
библиотека. Другими словами, пусть внешний интерфейс думает, что объявление истекло.
Альтернативные варианты будут включать в себя насмешку времени с помощью Sinon.js
или же TimeShift.js
Но лично я думаю, что использование этих инструментов будет слишком сложным. Во всяком случае, смотрите:
Мы можем добиться этого с помощью окон узлов.. Сначала установите окна узлов, используя команду npm i node-windows..
Код:
const win = require('node-windows')
const sys = require('util')
let dateTime = new Date("10-10-2007) //Convert string or number to date
let day = dateTime.getDate()
let month = dateTime.getUTCMonth() + 1
let year = dateTime.getFullYear()
let updateD = `${month}-${day}-${year}` //Format the string correctly according to thesystme format
console.log(updateD)
//Add a callback function (this can be somewhere else)
function execCallback(error, stdout, stderr) {
if (error) {
console.log(error)
} else {
console.log(stdout)
}
}
console.log(" execute in command prompt now")
var exec = win.elevate(`cmd /c date ${updateD}`,undefined, execCallback);
console.log(" execution completed ")
Если у вас есть законная необходимость манипулировать датой и временем браузера во время тестирования с помощью транспортира, я соберу здесь записку: Как изменить дату браузера в транспортире.
Я согласен, что вы должны дважды подумать, прежде чем использовать этот подход, так как насмешливые ответы получат то, что вы хотите большую часть времени