Make WordPress Core

Changeset 59015


Ignore:
Timestamp:
09/11/2024 10:39:45 PM (2 years ago)
Author:
peterwilsoncc
Message:

Taxonomy: Test inserting a child term flushes queries by term ID.

Adds a test to ensure that interting a child term invalidates the cache of a get_terms() query by the parent ID.

Props Dekadinious, peterwilsoncc.
See #62031, #61530.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/term/cache.php

    r58919 r59015  
    446446                $this->assertWPError( $terms );
    447447        }
     448
     449        /**
     450         * Ensures that the term query cache is cleared when a child term is inserted.
     451         *
     452         * @ticket 62031
     453         */
     454        public function test_inserting_child_term_clears_the_query_cache() {
     455                register_taxonomy(
     456                        'wptests_tax',
     457                        'post',
     458                        array(
     459                                'hierarchical' => true,
     460                        )
     461                );
     462
     463                $parent = self::factory()->term->create(
     464                        array(
     465                                'taxonomy' => 'wptests_tax',
     466                        )
     467                );
     468
     469                $children = get_terms(
     470                        array(
     471                                'taxonomy'   => 'wptests_tax',
     472                                'hide_empty' => false,
     473                                'parent'     => $parent,
     474                                'fields'     => 'ids',
     475                        )
     476                );
     477
     478                $this->assertEmpty( $children, 'No child terms are expected to exist.' );
     479
     480                $child = wp_insert_term(
     481                        'child-term-62031',
     482                        'wptests_tax',
     483                        array(
     484                                'parent' => $parent,
     485                        )
     486                );
     487
     488                $children = get_terms(
     489                        array(
     490                                'taxonomy'   => 'wptests_tax',
     491                                'hide_empty' => false,
     492                                'parent'     => $parent,
     493                                'fields'     => 'ids',
     494                        )
     495                );
     496
     497                $this->assertNotEmpty( $children, 'Child terms are expected to exist.' );
     498                $this->assertContains( $child['term_id'], $children, 'Querying by parent ID is expected to include the new child term.' );
     499        }
    448500}
Note: See TracChangeset for help on using the changeset viewer.