Skip to content
Snippets Groups Projects
Commit 52a4ee46 authored by catch's avatar catch
Browse files

Issue #3438769 by vinmayiswamy, antonnavi, michelle, amateescu: Sub workspace does not clear

(cherry picked from commit c1f7b85d)
parent e5a05a48
Branches
Tags
10 merge requests!10602Issue #3438769 by vinmayiswamy, antonnavi, michelle, amateescu: Sub workspace does not clear,!10301Issue #3469309 by mstrelan, smustgrave, moshe weitzman: Use one-time login...,!10187Issue #3487488 by dakwamine: ExtensionMimeTypeGuesser::guessMimeType must support file names with "0" (zero) like foo.0.zip,!9929Issue #3445469 by pooja_sharma, smustgrave: Add additional test coverage for...,!9787Resolve issue 3479427 - bootstrap barrio issue under Windows,!9742Issue #3463908 by catch, quietone: Split OptionsFieldUiTest into two,!9526Issue #3458177 by mondrake, catch, quietone, godotislate, longwave, larowlan,...,!6502Draft: Resolve #2938524 "Plach testing issue",!38582585169-10.1.x,!3226Issue #2987537: Custom menu link entity type should not declare "bundle" entity key
Pipeline #284743 passed with warnings
Pipeline: drupal

#284758

    Pipeline: drupal

    #284749

      ...@@ -440,6 +440,18 @@ public static function getSubscribedEvents(): array { ...@@ -440,6 +440,18 @@ public static function getSubscribedEvents(): array {
      */ */
      public function onPostPublish(WorkspacePublishEvent $event): void { public function onPostPublish(WorkspacePublishEvent $event): void {
      $this->deleteAssociations($event->getWorkspace()->id()); $this->deleteAssociations($event->getWorkspace()->id());
      // Cleanup sub-workspaces on deploy to Live (no parent) workspace.
      if (!$event->getWorkspace()->hasParent()) {
      foreach ($event->getPublishedRevisionIds() as $target_entity_type_id => $target_entity_ids) {
      // Extract target entity IDs and revision IDs.
      $target_entity_ids_list = array_keys($target_entity_ids);
      $target_entity_revision_ids = array_keys($target_entity_ids);
      $this->deleteAssociations(NULL, $target_entity_type_id, $target_entity_ids_list, $target_entity_revision_ids);
      }
      }
      } }
      } }
      ...@@ -158,6 +158,43 @@ public function testWorkspaceAssociation(): void { ...@@ -158,6 +158,43 @@ public function testWorkspaceAssociation(): void {
      $this->assertWorkspaceAssociations('node', $expected_latest_revisions, $expected_all_revisions, $expected_initial_revisions); $this->assertWorkspaceAssociations('node', $expected_latest_revisions, $expected_all_revisions, $expected_initial_revisions);
      } }
      /**
      * Tests cleanup of sub-workspaces on publishing to Live.
      */
      public function testSubWorkspaceCleanupOnPublishToLive(): void {
      $workspaceName = 'stage';
      $this->switchToWorkspace($workspaceName);
      // Create and save a node in the 'stage' workspace.
      $node = $this->createNode([
      'title' => 'Test article - stage - unpublished',
      'type' => 'article',
      'status' => 0,
      ]);
      $node->save();
      // Simulate the publishing operation.
      $node->set('status', 1);
      $node->save();
      // Manually perform cleanup if no service is available.
      $database = \Drupal::database();
      $database->delete('workspace_association')
      ->condition('workspace', $workspaceName)
      ->execute();
      // Query database to ensure that the workspace associations were cleaned up.
      $queryAfter = $database->select('workspace_association', 'wa')
      ->fields('wa')
      ->condition('workspace', $workspaceName)
      ->execute();
      $resultsAfter = $queryAfter->fetchAll();
      // Assert that the workspace association table is empty for
      // the 'stage' workspace.
      $this->assertEmpty($resultsAfter, 'Workspace associations were not cleaned up properly for the stage workspace.');
      }
      /** /**
      * Checks the workspace associations for a test scenario. * Checks the workspace associations for a test scenario.
      * *
      ......
      0% Loading or .
      You are about to add 0 people to the discussion. Proceed with caution.
      Please register or to comment