• 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 mockStorage() {
19  const storageMock = {
20    getStorageSync: function (...args) {
21      console.warn("Storage.getStorageSync interface mocked in the Previewer. How this interface works on the" +
22        " Previewer may be different from that on a real device.")
23      return storage;
24    },
25    getStorage: function (...args) {
26      console.warn("Storage.getStorage interface mocked in the Previewer. How this interface works on the" +
27        " Previewer may be different from that on a real device.")
28      const len = args.length
29      if (len > 0 && typeof args[len - 1] === 'function') {
30        args[len - 1].call(this, paramMock.businessErrorMock, storage);
31      } else {
32        return new Promise((resolve, reject) => {
33          resolve(storage);
34        })
35      }
36    },
37    deleteStorageSync: function (...args) {
38      console.warn("Storage.deleteStorageSync interface mocked in the Previewer. How this interface works on the" +
39        " Previewer may be different from that on a real device.")
40    },
41    deleteStorage: function (...args) {
42      console.warn("Storage.deleteStorage interface mocked in the Previewer. How this interface works on the" +
43        " Previewer may be different from that on a real device.")
44      const len = args.length
45      if (len > 0 && typeof args[len - 1] === 'function') {
46        args[len - 1].call(this, paramMock.businessErrorMock);
47      } else {
48        return new Promise((resolve, reject) => {
49          resolve();
50        })
51      }
52    },
53    removeStorageFromCacheSync: function (...args) {
54      console.warn("Storage.removeStorageFromCacheSync interface mocked in the Previewer. How this interface works on the" +
55        " Previewer may be different from that on a real device.")
56    },
57    removeStorageFromCache: function (...args) {
58      console.warn("Storage.removeStorageFromCache interface mocked in the Previewer. How this interface works on the" +
59        " Previewer may be different from that on a real device.")
60      const len = args.length
61      if (len > 0 && typeof args[len - 1] === 'function') {
62        args[len - 1].call(this, paramMock.businessErrorMock);
63      } else {
64        return new Promise((resolve, reject) => {
65          resolve();
66        })
67      }
68    },
69  };
70  const storageObserver = {
71    key: "[PC Preview] unknown key",
72  };
73  const storage = {
74    getSync: function (...args) {
75      console.warn("Storage.getSync interface mocked in the Previewer. How this interface works on the" +
76        " Previewer may be different from that on a real device.")
77      return paramMock.paramNumberMock;
78    },
79    get: function (...args) {
80      console.warn("Storage.get interface mocked in the Previewer. How this interface works on the" +
81        " Previewer may be different from that on a real device.")
82      const len = args.length
83      if (len > 0 && typeof args[len - 1] === 'function') {
84        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock);
85      } else {
86        return new Promise((resolve, reject) => {
87          resolve(paramMock.paramNumberMock);
88        })
89      }
90    },
91    hasSync: function (...args) {
92      console.warn("Storage.hasSync interface mocked in the Previewer. How this interface works on the" +
93        " Previewer may be different from that on a real device.")
94      return paramMock.paramBooleanMock;
95    },
96    has: function (...args) {
97      console.warn("Storage.has interface mocked in the Previewer. How this interface works on the" +
98        " Previewer may be different from that on a real device.")
99      const len = args.length
100      if (len > 0 && typeof args[len - 1] === 'function') {
101        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock);
102      } else {
103        return new Promise((resolve, reject) => {
104          resolve(paramMock.paramBooleanMock);
105        })
106      }
107    },
108    putSync: function (...args) {
109      console.warn("Storage.putSync interface mocked in the Previewer. How this interface works on the" +
110        " Previewer may be different from that on a real device.")
111    },
112    put: function (...args) {
113      console.warn("Storage.put interface mocked in the Previewer. How this interface works on the" +
114        " Previewer may be different from that on a real device.")
115      const len = args.length
116      if (len > 0 && typeof args[len - 1] === 'function') {
117        args[len - 1].call(this, paramMock.businessErrorMock);
118      } else {
119        return new Promise((resolve, reject) => {
120          resolve();
121        })
122      }
123    },
124    deleteSync: function (...args) {
125      console.warn("Storage.deleteSync interface mocked in the Previewer. How this interface works on the" +
126        " Previewer may be different from that on a real device.")
127    },
128    delete: function (...args) {
129      console.warn("Storage.delete interface mocked in the Previewer. How this interface works on the" +
130        " Previewer may be different from that on a real device.")
131      const len = args.length
132      if (len > 0 && typeof args[len - 1] === 'function') {
133        args[len - 1].call(this, paramMock.businessErrorMock);
134      } else {
135        return new Promise((resolve, reject) => {
136          resolve();
137        })
138      }
139    },
140    clearSync: function (...args) {
141      console.warn("Storage.clearSync interface mocked in the Previewer. How this interface works on the" +
142        " Previewer may be different from that on a real device.")
143    },
144    clear: function (...args) {
145      console.warn("Storage.clear interface mocked in the Previewer. How this interface works on the" +
146        " Previewer may be different from that on a real device.")
147      const len = args.length
148      if (len > 0 && typeof args[len - 1] === 'function') {
149        args[len - 1].call(this, paramMock.businessErrorMock);
150      } else {
151        return new Promise((resolve, reject) => {
152          resolve();
153        })
154      }
155    },
156    flushSync: function (...args) {
157      console.warn("Storage.flushSync interface mocked in the Previewer. How this interface works on the" +
158        " Previewer may be different from that on a real device.")
159    },
160    flush: function (...args) {
161      console.warn("Storage.flush interface mocked in the Previewer. How this interface works on the" +
162        " Previewer may be different from that on a real device.")
163      const len = args.length
164      if (len > 0 && typeof args[len - 1] === 'function') {
165        args[len - 1].call(this, paramMock.businessErrorMock);
166      } else {
167        return new Promise((resolve, reject) => {
168          resolve();
169        })
170      }
171    },
172    on: function (...args) {
173      console.warn("Storage.on interface mocked in the Previewer. How this interface works on the" +
174        " Previewer may be different from that on a real device.")
175      return storageObserver;
176    },
177    off: function (...args) {
178      console.warn("Storage.off interface mocked in the Previewer. How this interface works on the" +
179        " Previewer may be different from that on a real device.")
180      return storageObserver;
181    },
182  };
183  return storageMock;
184}
185
186