我正在使用优秀的 ht tps ://www.npmjs.com/package/idb包来管理 Web 应用程序上的简单 indexedDB 实现。
对于大量 iOS 用户,我向我们的错误报告系统报告了此错误“UnknownError:数据库已根据用户的请求删除”,但我在复制时遇到了问题。
到目前为止,它似乎只影响用户:
我认为错误的根源是webkit中的这一行https://github.com/WebKit/WebKit/blob/e98ff129bc8eba06ac17105f19c5f0e142aab853/Source/WebCore/Modules/indexeddb/shared/IDBError.h#L40
这似乎与服务器连接关闭有关。
实现的简化版本:
// ./store.js
import { openDB } from 'idb'
export const upgrade = (db) => {
if (!db?.createObjectStore) return null
db.createObjectStore('example_store_name_1')
}
export const set = async (storeName, val, key) => {
const dbPromise = openDB('example_db_name', 1, { upgrade })
if (!window.indexedDB) return null
return (await dbPromise).put(storeName, val, key)
}
export const …Run Code Online (Sandbox Code Playgroud) 我刚开始用Wordpress学习PHPUnit.我有一个插件可以从change.org获取请愿数据.其中一个管理类函数验证来自Wordpress管理区域的设置,并在此验证过程中调用`check_admin_referer().
public function sc_validate_settings() {
//check nonce field is valid
check_admin_referer($this->plugin_name, 'security');
//get new settings
$settings = $this->sc_clean_new_settings();
//validate url
$valid_url = $this->sc_validate_url($settings['petition_url']);
//validate api_key
$valid_api_key = $this->sc_validate_api_key($settings['petition_api_key']);
if ($valid_url && $valid_api_key) {
$this->clean_settings = $settings;
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果我注释掉,那么这个PHPUnit测试会通过,check_admin_referer()但如果没有,我就无法通过.
public function testValidateSettings() {
$this->assertTrue($this->plugin_admin->sc_validate_settings());
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试手动设置一个nonce,action和_wp_http_referer,并在tests/bootstrap.php和测试类本身中通过wp_nonce_field()via $_POST.我已经阅读了一些关于模拟对象/方法的内容,但是在这个实例中并没有看到它们如何被使用.
我可能完全误解了所有这些是如何工作的,但任何帮助将不胜感激!