205 lines
3.7 KiB
Lua
205 lines
3.7 KiB
Lua
|
require("luasnip.session.snippet_collection").clear_snippets("php")
|
||
|
require("luasnip.session.snippet_collection").clear_snippets("yaml")
|
||
|
|
||
|
local ls = require("luasnip")
|
||
|
|
||
|
local s = ls.snippet
|
||
|
local t = ls.text_node
|
||
|
|
||
|
local fmt = require("luasnip.extras.fmt").fmt
|
||
|
local fmta = require("luasnip.extras.fmt").fmta
|
||
|
|
||
|
ls.add_snippets("php", {
|
||
|
s(
|
||
|
"createnodes",
|
||
|
fmt(
|
||
|
[[
|
||
|
$this->createNode(['type' => 'talk']);
|
||
|
$this->createNode(['type' => 'talk']);
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"pagecontroller",
|
||
|
fmta(
|
||
|
[[
|
||
|
<<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace Drupal\opdavies_talks\Controller;
|
||
|
|
||
|
final class TalksPageController {
|
||
|
|
||
|
public function __invoke(): array {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"repocount",
|
||
|
fmt(
|
||
|
[[
|
||
|
public function __construct(private EntityTypeManagerInterface $entityTypeManager) {{
|
||
|
}}
|
||
|
|
||
|
public function getCount(): int {{
|
||
|
$talks = $this->entityTypeManager->getStorage('node')->loadByProperties();
|
||
|
|
||
|
return count($talks);
|
||
|
}}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"repotestclass",
|
||
|
fmta(
|
||
|
[[
|
||
|
<<?php
|
||
|
|
||
|
namespace Drupal\Tests\opdavies_talks\Kernel\Repository;
|
||
|
|
||
|
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
|
||
|
|
||
|
final class TalkNodeRepositoryTest extends EntityKernelTestBase {
|
||
|
|
||
|
protected static $modules = ['opdavies_talks'];
|
||
|
|
||
|
}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"repotestcount",
|
||
|
fmt(
|
||
|
[[
|
||
|
public function test_it_returns_a_count(): void {{
|
||
|
$talkRepository = $this->container->get(TalkNodeRepository::class);
|
||
|
|
||
|
self::assertSame(2, $talkRepository->getCount());
|
||
|
}}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"showconstructor",
|
||
|
fmta(
|
||
|
[[
|
||
|
public function __construct(private TalkNodeRepository $talkRepository) {
|
||
|
}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"showcount",
|
||
|
fmt(
|
||
|
[[
|
||
|
$talkCount = 2;
|
||
|
|
||
|
return ['#markup' => $this->t('<span data-talk-count>:count talks</span>', [':count' => $talkCount])];
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s("showrepository", t("$talkCount = $this->talkRepository->getCount();")),
|
||
|
|
||
|
s(
|
||
|
"test200response",
|
||
|
fmt(
|
||
|
[[
|
||
|
public function test_it_returns_a_200_response_code(): void {{
|
||
|
$this->drupalGet('/talks');
|
||
|
|
||
|
$session = $this->assertSession();
|
||
|
$session->statusCodeEquals(Response::HTTP_OK);
|
||
|
}}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"testclass",
|
||
|
fmt(
|
||
|
[[
|
||
|
<?php
|
||
|
|
||
|
namespace Drupal\Tests\opdavies_talks\Functional;
|
||
|
|
||
|
use Drupal\Tests\BrowserTestBase;
|
||
|
|
||
|
class TalksPageTest extends BrowserTestBase {{
|
||
|
|
||
|
public $defaultTheme = 'stark';
|
||
|
|
||
|
}}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"testcount",
|
||
|
fmt(
|
||
|
[[
|
||
|
public function test_it_displays_the_talk_count(): void {{
|
||
|
$this->drupalGet('/talks');
|
||
|
|
||
|
$session = $this->assertSession();
|
||
|
$session->responseContains('<span data-talk-count>2 talks</span>');
|
||
|
}}
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s("testmodules", t("protected static $modules = ['opdavies_talks'];")),
|
||
|
})
|
||
|
|
||
|
ls.add_snippets("yaml", {
|
||
|
s(
|
||
|
"talkpage",
|
||
|
fmt(
|
||
|
[[
|
||
|
opdavies_talks.page:
|
||
|
path: /talks
|
||
|
defaults:
|
||
|
_controller: Drupal\opdavies_talks\Controller\TalksPageController
|
||
|
_title: Talks
|
||
|
requirements:
|
||
|
_permission: access content
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
|
||
|
s(
|
||
|
"talkservices",
|
||
|
fmt(
|
||
|
[[
|
||
|
services:
|
||
|
Drupal\opdavies_talks\Controller\TalksPageController:
|
||
|
autowire: true
|
||
|
Drupal\opdavies_talks\Repository\TalkNodeRepository: []
|
||
|
]],
|
||
|
{}
|
||
|
)
|
||
|
),
|
||
|
})
|