1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-08 06:06:45 +02:00

feat(vars): new Vars service to store global variables

This commit is contained in:
Awilum
2022-09-09 14:26:18 +03:00
parent 9060fa30a4
commit 7de0b86eed
4 changed files with 139 additions and 16 deletions

View File

@@ -0,0 +1,30 @@
<?php
use Flextype\Component\Filesystem\Filesystem;
use function Glowy\Filesystem\filesystem;
use function Flextype\entries;
beforeEach(function() {
filesystem()->directory(FLEXTYPE_PATH_PROJECT . '/entries')->create();
});
afterEach(function (): void {
filesystem()->directory(FLEXTYPE_PATH_PROJECT . '/entries')->delete();
});
test('var expression', function () {
entries()->create('var', [
'title' => 'Title',
// Set
'test-set-1' => '[% vars().set("test-set-1", "Foo!") %]',
// Get
'test-get-1' => '[[ vars().get("test-set-1") ]]',
'test-get-2' => '[[ var("test-set-1") ]]',
]);
expect(entries()->fetch('var')['test-get-1'])->toBe('Foo!');
expect(entries()->fetch('var')['test-get-2'])->toBe('Foo!');
});

View File

@@ -16,14 +16,37 @@ afterEach(function () {
});
test('var shortcode', function () {
expect(entries()->create('foo', ['vars' => ['foo' => 'Foo'], 'title' => '(var:foo) (var get:foo)']))->toBeTrue();
expect(entries()->fetch('foo')['title'])->toBe('Foo Foo');
expect(entries()->create('foo', [
'title' => 'Title',
// set
'test-set-1' => '(var set:bar1 value:Bar1)(var:bar1)',
'test-set-2' => '(var set:bar2)Bar2(/var)(var:bar2)',
'test-set-3' => '(var set:level1.level2.level3)Multilevel(/var)(var:level1.level2.level3)',
'test-set-4' => '(var set:_.foo)Foo(/var)(var:_.foo)',
expect(entries()->create('bar', ['title' => '(var set:bar value:Bar)(var:bar)']))->toBeTrue();
expect(entries()->fetch('bar')['title'])->toBe('Bar');
// get
'test-get-1' => '(var:bar1)',
'test-get-3' => '(var get:foo default:Foo)',
'test-get-4' => '(var get:foo)Foo(/var)',
// unset
'test-unset-1' => '(var unset:bar1)(var:bar1)',
expect(entries()->create('zed', ['title' => '(var set:zed)Zed(/var)(var:zed)']))->toBeTrue();
expect(entries()->fetch('zed')['title'])->toBe('Zed');
// delete
'test-delete-1' => '(var delete:bar1)(var:bar1)',
]))->toBeTrue();
$foo = entries()->fetch('foo');
expect($foo['test-get-3'])->toBe('Foo');
expect($foo['test-get-4'])->toBe('Foo');
expect($foo['test-set-1'])->toBe('Bar1');
expect($foo['test-set-2'])->toBe('Bar2');
expect($foo['test-set-3'])->toBe('Multilevel');
expect($foo['test-set-4'])->toBe('Foo');
expect($foo['test-unset-1'])->toBe('');
expect($foo['test-delete-1'])->toBe('');
});
test('var shortcode disabled', function () {