diff --git a/reportbuilder/tests/local/helpers/user_profile_fields_test.php b/reportbuilder/tests/local/helpers/user_profile_fields_test.php index 5b3a7452a5d..9ec960ca5a9 100644 --- a/reportbuilder/tests/local/helpers/user_profile_fields_test.php +++ b/reportbuilder/tests/local/helpers/user_profile_fields_test.php @@ -81,38 +81,54 @@ class user_profile_fields_test extends core_reportbuilder_testcase { public function test_get_columns(): void { $this->resetAfterTest(); + $userentity = new user(); + $useralias = $userentity->get_table_alias('user'); + + // Get pre-existing user profile fields. + $initialuserprofilefields = new user_profile_fields("$useralias.id", $userentity->get_entity_name()); + $initialcolumns = $initialuserprofilefields->get_columns(); + $initialcolumntitles = array_map(static function(column $column): string { + return $column->get_title(); + }, $initialcolumns); + $initialcolumntypes = array_map(static function(column $column): int { + return $column->get_type(); + }, $initialcolumns); + + // Add new custom profile fields. $userprofilefields = $this->generate_userprofilefields(); $columns = $userprofilefields->get_columns(); - $this->assertCount(6, $columns); + // Columns count should be equal to start + 6. + $this->assertCount(count($initialcolumns) + 6, $columns); $this->assertContainsOnlyInstancesOf(column::class, $columns); // Assert column titles. $columntitles = array_map(static function(column $column): string { return $column->get_title(); }, $columns); - $this->assertEquals([ + $expectedcolumntitles = array_merge($initialcolumntitles, [ 'Checkbox field', 'Date field', 'Menu field', 'MSN ID', 'Text field', 'Textarea field', - ], $columntitles); + ]); + $this->assertEquals($expectedcolumntitles, $columntitles); // Assert column types. $columntypes = array_map(static function(column $column): int { return $column->get_type(); }, $columns); - $this->assertEquals([ + $expectedcolumntypes = array_merge($initialcolumntypes, [ column::TYPE_BOOLEAN, column::TYPE_TIMESTAMP, column::TYPE_TEXT, column::TYPE_TEXT, column::TYPE_TEXT, column::TYPE_LONGTEXT, - ], $columntypes); - + ]); + $this->assertEquals($expectedcolumntypes, $columntypes); } /** @@ -151,24 +167,37 @@ class user_profile_fields_test extends core_reportbuilder_testcase { public function test_get_filters(): void { $this->resetAfterTest(); + $userentity = new user(); + $useralias = $userentity->get_table_alias('user'); + + // Get pre-existing user profile fields. + $initialuserprofilefields = new user_profile_fields("$useralias.id", $userentity->get_entity_name()); + $initialfilters = $initialuserprofilefields->get_filters(); + $initialfilterheaders = array_map(static function(filter $filter): string { + return $filter->get_header(); + }, $initialfilters); + + // Add new custom profile fields. $userprofilefields = $this->generate_userprofilefields(); $filters = $userprofilefields->get_filters(); - $this->assertCount(6, $filters); + // Filters count should be equal to start + 6. + $this->assertCount(count($initialfilters) + 6, $filters); $this->assertContainsOnlyInstancesOf(filter::class, $filters); // Assert filter headers. $filterheaders = array_map(static function(filter $filter): string { return $filter->get_header(); }, $filters); - $this->assertEquals([ + $expectedfilterheaders = array_merge($initialfilterheaders, [ 'Checkbox field', 'Date field', 'Menu field', 'MSN ID', 'Text field', 'Textarea field', - ], $filterheaders); + ]); + $this->assertEquals($expectedfilterheaders, $filterheaders); } /**