• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}