Skip to content

Commit 0d2f962

Browse files
author
Jordan Hoff
committed
Bugfix for prefixed attributes
1 parent 7ef0e7c commit 0d2f962

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

src/Element.php

+9-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,15 @@ public function setAttribute(string $name, $value)
7373
*/
7474
protected function buildAttribute(string $key, $value) : string
7575
{
76-
return is_null($value) ? $key : sprintf('%s="%s"', $key, $value);
76+
if (is_numeric($key)) {
77+
return $value;
78+
}
79+
80+
if (is_null($value)) {
81+
return $key;
82+
}
83+
84+
return sprintf('%s="%s"', $key, $value);
7785
}
7886

7987
/**

tests/Unit/ComponentTest.php

+12-12
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public function basicComponentRendersStartTag()
1818
$tag = Basic::start('foobar');
1919

2020
$this->assertRegExp('/\<component.*\>/', $tag);
21-
$this->assertContains('v-cloak', $tag);
22-
$this->assertContains('is="foobar"', $tag);
21+
$this->assertRegExp('/[\s\>]v-cloak[\s\>]/', $tag);
22+
$this->assertRegExp('/[\s\>]is="foobar"[\s\>]/', $tag);
2323
}
2424

2525
/**
@@ -30,9 +30,9 @@ public function inlineComponentRendersStartTag()
3030
$tag = Inline::start('foobar');
3131

3232
$this->assertRegExp('/\<component.*\>/', $tag);
33-
$this->assertContains('inline-template', $tag);
34-
$this->assertContains('v-cloak', $tag);
35-
$this->assertContains('is="foobar"', $tag);
33+
$this->assertRegExp('/[\s\>]inline-template[\s\>]/', $tag);
34+
$this->assertRegExp('/[\s\>]v-cloak[\s\>]/', $tag);
35+
$this->assertRegExp('/[\s\>]is="foobar"[\s\>]/', $tag);
3636
}
3737

3838
/**
@@ -100,8 +100,8 @@ public function componentWithBooleanArgumentsRendersStartTag()
100100
{
101101
$tag = Basic::start('foobar', ['foo' => true, 'baz' => false]);
102102

103-
$this->assertContains(':foo="true"', $tag);
104-
$this->assertContains(':baz="false"', $tag);
103+
$this->assertRegExp('/[\s\>]:foo="true"[\s\>]/', $tag);
104+
$this->assertRegExp('/[\s\>]:baz="false"[\s\>]/', $tag);
105105
}
106106

107107
/**
@@ -111,8 +111,8 @@ public function componentWithScalarArgumentsRendersStartTag()
111111
{
112112
$tag = Basic::start('foobar', ['foo' => 'bar', 'baz' => 123]);
113113

114-
$this->assertContains('foo="bar"', $tag);
115-
$this->assertContains(':baz="123"', $tag);
114+
$this->assertRegExp('/[\s\>]foo="bar"[\s\>]/', $tag);
115+
$this->assertRegExp('/[\s\>]:baz="123"[\s\>]/', $tag);
116116
}
117117

118118
/**
@@ -129,8 +129,8 @@ public function componentWithArrayOrObjectArgumentsRendersStartTag()
129129
]
130130
);
131131

132-
$this->assertContains(':foo="[1,2,3]"', $tag);
133-
$this->assertContains(':bar="{&quot;foo&quot;:&quot;bar&quot;}"', $tag);
134-
$this->assertContains(':baz="{&quot;baz&quot;:&quot;qux&quot;}"', $tag);
132+
$this->assertRegExp('/[\s\>]:foo="\[1,2,3\]"[\s\>]/', $tag);
133+
$this->assertRegExp('/[\s\>]:bar="{&quot;foo&quot;:&quot;bar&quot;}"[\s\>]/', $tag);
134+
$this->assertRegExp('/[\s\>]:baz="{&quot;baz&quot;:&quot;qux&quot;}"[\s\>]/', $tag);
135135
}
136136
}

0 commit comments

Comments
 (0)