2015-07-02 8 views
5

मुझे यह ऑब्जेक्ट जांचने में समस्या हो रही है कि मुझे एकाधिक .to.have.property कथनों को चेन करने के लिए कुछ करने की ज़रूरत है? मेरा मानना ​​है कि मैं अगले परिणाम में अंतिम .to.have.property से परिणाम वापस कर रहा हूं।यदि ऑब्जेक्ट में एकाधिक गुण हैं

expect(shopify.formatRequestOptions("shop")) 
    .to.have.property('url', "https://"+settings.shop+"/admin/shop.json") 
    .to.have.property('method', "GET") 
    .to.have.deep.property('headers.X-Shopify-Access-Token', settings.accessToken) 

यह मैं एक वस्तु की जांच करने के लिए इस chai-subset की तरह कुछ का उपयोग कर सकते है। क्या इन्हें एक साथ करने का कोई तरीका नहीं है? मुझे ऐसा करने से नफरत होगी।

var result = shopify.formatRequestOptions("shop") 
expect(result).to.have.property('url', "https://"+settings.shop+"/admin/shop.json") 
expect(result).to.have.property('method', "GET") 
expect(result).to.have.deep.property('headers.X-Shopify-Access-Token', settings.accessToken) 
+1

मुझे इसके बारे में बहुत कुछ पता नहीं है, लेकिन ऐसा लगता है कि यह प्रगति पर है। लिंक https://github.com/chaijs/chai/issues/193 देखें – Elyasin

उत्तर

2

अपने खुद के समारोह है कि सिर्फ true/false वापस आती है और किसी भी इंटरफ़ेस है का निर्माण किया जा सका।

let example = { 
    'name': 'thomas' 
} 

let hasAllProps = (obj, props) => { 
    let propsTrue = _.chain(props) 
    .map(prop => _.has(obj, prop)) 
    .without(false) 
    .value() 
    return (propsTrue.length === props.length) 
} 

console.log(hasAllProps(example, ['name'])) // true 
console.log(hasAllProps(example, ['age'])) // false 
संबंधित मुद्दे