开玩笑:断言数组不包含具有某些属性的对象

时间:2019-11-28 01:23:51

标签: jestjs salesforce

我正在使用Jest,我想对对象数组进行断言。到目前为止,我已经能够成功使用此模式来断言一个对象数组(在本例中为DOM中的按钮)包括至少一个其标签和标题均为“ Edit”的对象。 (objectContaining部分确保我不必担心这些按钮可能具有的任何其他属性)

let buttons = [...element.shadowRoot.querySelectorAll('lightning-button')];
expect(buttons).toContainEqual(expect.objectContaining({label: 'Edit', title: 'Edit'}));

棘手的部分是当我设置了一个应隐藏“编辑”按钮的属性时,我想断言它不再位于数组中:

element.edit = true;
return Promise.resolve().then(() => {
    // The Edit button should NOT display
    expect(buttons).not.toContainEqual(expect.objectContaining({label: 'Edit', title: 'Edit'}));
})

开玩笑给我的失败看起来像这样:

Expected value: not ObjectContaining {"label": "Edit", "title": "Edit"}
Received array:     [{"$$ShadowResolverKey$$": [Function shadowResolver], 
                      "$$ShadowTokenKey$$": undefined, 
                      "$fromTemplate$": true}]

正确的语法是什么?

0 个答案:

没有答案