Skip to content

Commit ef839de

Browse files
Mark Salmonjasonmccreary
authored andcommitted
Add in rule for enums and sets
1 parent 99e432c commit ef839de

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/Translators/Rules.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public static function fromColumn(Column $column)
5252
}
5353
}
5454

55+
if (in_array($column->dataType(), ['enum', 'set'])) {
56+
$rules = array_merge($rules, ['in:' . implode(',', $column->attributes())]);
57+
}
5558

5659
if ($column->attributes()) {
5760
if (in_array($column->dataType(), ['string', 'char'])) {

tests/Feature/Translators/RulesTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,19 @@ public function forColumn_returns_gt0_rule_for_unsigned_numeric_types()
9999
$this->assertContains('numeric', Rules::fromColumn($column));
100100
}
101101

102+
/**
103+
* @test
104+
*/
105+
public function forColumn_returns_in_rule_for_enums_and_sets()
106+
{
107+
$column = new Column('test', 'enum', [], ['alpha', 'bravo', 'charlie']);
108+
$this->assertContains('in:alpha,bravo,charlie', Rules::fromColumn($column));
109+
110+
$column = new Column('test', 'set', [], [2,4,6]);
111+
112+
$this->assertContains('in:2,4,6', Rules::fromColumn($column));
113+
}
114+
102115
public function stringDataTypesProvider()
103116
{
104117
return [

0 commit comments

Comments
 (0)