Skip to content

Commit 2bdb866

Browse files
committed
Store website method
1 parent e8b4f1c commit 2bdb866

File tree

2 files changed

+62
-1
lines changed

2 files changed

+62
-1
lines changed

src/Data/Store.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace JustBetter\MagentoUtilities\Data;
44

5+
use JustBetter\MagentoUtilities\Contracts\GetsWebsites;
6+
57
/**
68
* @property int $id
79
* @property string $code
@@ -14,5 +16,15 @@
1416
*/
1517
class Store extends Data
1618
{
17-
//
19+
public function website(): Website
20+
{
21+
/** @var GetsWebsites $contract */
22+
$contract = app(GetsWebsites::class);
23+
24+
$websites = $contract->get();
25+
26+
return $websites
27+
->where('id', '=', $this->website_id)
28+
->firstOrFail();
29+
}
1830
}

tests/Data/StoreTest.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
namespace JustBetter\MagentoUtilities\Tests\Data;
4+
5+
use Illuminate\Support\Facades\Http;
6+
use JustBetter\MagentoClient\Client\Magento;
7+
use JustBetter\MagentoUtilities\Data\Store;
8+
use JustBetter\MagentoUtilities\Tests\TestCase;
9+
use PHPUnit\Framework\Attributes\Test;
10+
11+
class StoreTest extends TestCase
12+
{
13+
#[Test]
14+
public function it_can_get_website(): void
15+
{
16+
Magento::fake();
17+
18+
Http::fake([
19+
'magento/rest/all/V1/store/websites' => Http::response([
20+
[
21+
'id' => 0,
22+
'code' => 'admin',
23+
'name' => 'Admin',
24+
'default_group_id' => 0,
25+
],
26+
[
27+
'id' => 1,
28+
'code' => 'base',
29+
'name' => 'Base',
30+
'default_group_id' => 1,
31+
],
32+
]),
33+
])->preventStrayRequests();
34+
35+
$store = Store::make([
36+
'id' => 1,
37+
'code' => 'default',
38+
'name' => 'Default',
39+
'website_id' => 1,
40+
'store_group_id' => 1,
41+
'is_active' => 1,
42+
]);
43+
44+
$website = $store->website();
45+
46+
$this->assertEquals(1, $website->id);
47+
$this->assertEquals('base', $website->code);
48+
}
49+
}

0 commit comments

Comments
 (0)