1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { paramMock } from "../utils" 17 18export function mockVibrator() { 19 const EffectId = { 20 EFFECT_CLOCK_TIMER: "haptic.clock.timer" 21 } 22 const VibratorStopMode = { 23 VIBRATOR_STOP_MODE_TIME: "time", 24 VIBRATOR_STOP_MODE_PRESET: "preset" 25 } 26 const vibrator = { 27 vibrate: function (...args) { 28 console.warn("vibrator.vibrate interface mocked in the Previewer. How this interface works on the" + 29 " Previewer may be different from that on a real device.") 30 const len = args.length 31 if (typeof args[len - 1] === 'function') { 32 args[len - 1].call(this, paramMock.businessErrorMock); 33 } else { 34 return new Promise((resolve) => { 35 resolve(); 36 }) 37 } 38 }, 39 stop: function (...args) { 40 console.warn("vibrator.stop interface mocked in the Previewer. How this interface works on the" + 41 " Previewer may be different from that on a real device.") 42 const len = args.length 43 if (typeof args[len - 1] === 'function') { 44 args[len - 1].call(this, paramMock.businessErrorMock); 45 } else { 46 return new Promise((resolve) => { 47 resolve(); 48 }) 49 } 50 } 51 } 52 return vibrator 53}