google_tag-8.x-1.x-dev/tests/src/Nightwatch/TestCommerceSiteInstallTestScript.php
tests/src/Nightwatch/TestCommerceSiteInstallTestScript.php
<?php
declare(strict_types=1);
use Drupal\commerce_product\Entity\Product;
use Drupal\commerce_product\Entity\ProductAttribute;
use Drupal\commerce_product\Entity\ProductAttributeValue;
use Drupal\commerce_product\Entity\ProductVariation;
use Drupal\commerce_store\Entity\Store;
use Drupal\Component\Utility\Random;
use Drupal\google_tag\Entity\TagContainer;
use Drupal\TestSite\TestSetupInterface;
/**
* Commerce site install setup.
*/
final class TestCommerceSiteInstallTestScript implements TestSetupInterface {
/**
* {@inheritDoc}
*/
public function setup() {
// @phpstan-ignore-next-line
\Drupal::service('module_installer')->install([
'test_page_test',
'google_tag',
'google_tag_test',
'commerce_product',
'commerce_cart',
'commerce_checkout',
]);
// @todo don't always create one, write command to do so.
TagContainer::create([
'id' => 'foo',
'tag_container_ids' => [
'GT-XXXXXX',
'G-XXXXXX',
'AW-XXXXXX',
'DC-XXXXXX',
'UA-XXXXXX',
],
'events' => [
'login' => [],
'sign_up' => [],
'route_name' => [],
'commerce_add_to_cart' => [],
'commerce_begin_checkout' => [],
'commerce_purchase' => [],
'commerce_remove_from_cart' => [],
'commerce_view_item' => [],
],
])->save();
// @phpstan-ignore-next-line
$currency_importer = \Drupal::service('commerce_price.currency_importer');
$currency_importer->import('USD');
$store = Store::create([
'type' => 'online',
'uid' => 1,
'name' => 'FooBar Store',
'mail' => 'foo@example.com',
'default_currency' => 'USD',
'timezone' => 'Australia/Sydney',
'address' => [
'country_code' => 'US',
'address_line1' => (new Random())->string(8, TRUE),
'locality' => (new Random())->string(5, TRUE),
'administrative_area' => 'WI',
'postal_code' => '53597',
],
'billing_countries' => ['US'],
'is_default' => TRUE,
]);
$store->save();
$attribute = ProductAttribute::create([
'id' => 'color',
'label' => 'Color',
]);
$attribute->save();
$color_blue = ProductAttributeValue::create([
'attribute' => 'color',
'name' => 'Blue',
]);
$color_blue->save();
$color_red = ProductAttributeValue::create([
'attribute' => 'color',
'name' => 'Red',
]);
$color_red->save();
// @phpstan-ignore-next-line
\Drupal::service('commerce_product.attribute_field_manager')->createField(
$attribute,
'default',
);
$variation1 = ProductVariation::create([
'type' => 'default',
'sku' => 'ABC123',
'price' => [
'number' => '12.00',
'currency_code' => 'USD',
],
'attribute_color' => $color_blue,
]);
$variation1->save();
$variation2 = ProductVariation::create([
'type' => 'default',
'sku' => 'DEF456',
'price' => [
'number' => '12.00',
'currency_code' => 'USD',
],
'attribute_color' => $color_red,
]);
$variation2->save();
$product = Product::create([
'type' => 'default',
'title' => 'FooBaz Widget',
'stores' => [$store],
'variations' => [$variation1, $variation2],
]);
$product->save();
}
}
