You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							1.6 KiB
						
					
					
				| "use strict"; | |
| 
 | |
| Object.defineProperty(exports, "__esModule", { | |
|   value: true | |
| }); | |
| exports.toHaveAttribute = toHaveAttribute; | |
| 
 | |
| var _utils = require("./utils"); | |
| 
 | |
| function printAttribute(stringify, name, value) { | |
|   return value === undefined ? name : `${name}=${stringify(value)}`; | |
| } | |
| 
 | |
| function getAttributeComment(stringify, name, value) { | |
|   return value === undefined ? `element.hasAttribute(${stringify(name)})` : `element.getAttribute(${stringify(name)}) === ${stringify(value)}`; | |
| } | |
| 
 | |
| function toHaveAttribute(htmlElement, name, expectedValue) { | |
|   (0, _utils.checkHtmlElement)(htmlElement, toHaveAttribute, this); | |
|   const isExpectedValuePresent = expectedValue !== undefined; | |
|   const hasAttribute = htmlElement.hasAttribute(name); | |
|   const receivedValue = htmlElement.getAttribute(name); | |
|   return { | |
|     pass: isExpectedValuePresent ? hasAttribute && this.equals(receivedValue, expectedValue) : hasAttribute, | |
|     message: () => { | |
|       const to = this.isNot ? 'not to' : 'to'; | |
|       const receivedAttribute = hasAttribute ? printAttribute(this.utils.stringify, name, receivedValue) : null; | |
|       const matcher = this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveAttribute`, 'element', this.utils.printExpected(name), { | |
|         secondArgument: isExpectedValuePresent ? this.utils.printExpected(expectedValue) : undefined, | |
|         comment: getAttributeComment(this.utils.stringify, name, expectedValue) | |
|       }); | |
|       return (0, _utils.getMessage)(this, matcher, `Expected the element ${to} have attribute`, printAttribute(this.utils.stringify, name, expectedValue), 'Received', receivedAttribute); | |
|     } | |
|   }; | |
| } | 
