Diff

spec/util_datamapper_spec.lua @ 11437:87a684df4b65

util.datamapper: Invent extension for using tag name as value Useful for certain enum-like uses where the element name is the relevant information, e.g. chat states.
author Kim Alvefur <zash@zash.se>
date Sat, 06 Mar 2021 23:14:23 +0100
parent 11436:5df9ffc25bb4
child 11438:b7807583de34
line wrap: on
line diff
--- a/spec/util_datamapper_spec.lua	Sun Mar 07 00:57:36 2021 +0100
+++ b/spec/util_datamapper_spec.lua	Sat Mar 06 23:14:23 2021 +0100
@@ -27,15 +27,20 @@
 					xml = {namespace = "urn:xmpp:delay"; name = "delay"};
 					properties = {stamp = attr(); from = attr(); reason = {type = "string"; xml = {text = true}}};
 				};
+				state = {
+					type = "string";
+					xml = {x_name_is_value = true; namespace = "http://jabber.org/protocol/chatstates"};
+				};
 			};
 		};
 
 		x = xml.parse [[
-			<message xmlns="jabber:client" xml:lang="en" to="a@test" from="b@test" type="chat" id="1">
-			<body>Hello</body>
-			<delay xmlns='urn:xmpp:delay' from='test' stamp='2021-03-07T15:59:08+00:00'>Becasue</delay>
-			</message>
-		]];
+				<message xmlns="jabber:client" xml:lang="en" to="a@test" from="b@test" type="chat" id="1">
+				<body>Hello</body>
+				<delay xmlns='urn:xmpp:delay' from='test' stamp='2021-03-07T15:59:08+00:00'>Becasue</delay>
+				<active xmlns='http://jabber.org/protocol/chatstates'/>
+				</message>
+				]];
 
 		d = {
 			to = "a@test";
@@ -45,6 +50,7 @@
 			lang = "en";
 			body = "Hello";
 			delay = {from = "test"; stamp = "2021-03-07T15:59:08+00:00"; reason = "Becasue"};
+			state = "active";
 		};
 	end);