fjffk简单的咖啡店科开发2方法2 环滁皆山也。其西南诸峰,林壑尤美,望之蔚然而深秀者,琅琊也。山行六七里,渐闻水声潺潺,而泻出于两峰之间者,酿泉也 ??????????????????????????????? ??????????????/????????????????? ............/................... .........................../... ??????????????????????????????? >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>> ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>/>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dsdfAI/EntityDriverTest.php000064400000001650152665634520011056 0ustar00toBeArray() ->not ->toBeEmpty() ->and($interfaces) ->toBeArray() ->not ->toBeEmpty() ->toHaveCount(count($traits) + 1); // without WithCalculate }); test('input traits should have interfaces', function () { $traits = File::files(app_path('Domains/Entity/Concerns/Input')); $interfaces = File::files(app_path('Domains/Entity/Contracts/Input')); expect($traits) ->toBeArray() ->not ->toBeEmpty() ->and($interfaces) ->toBeArray() ->not ->toBeEmpty() ->toHaveCount(count($traits)); }); Blade/FormElementsTest.php000064400000001101152665634520011533 0ustar00 HTML; expect($this->blade(''))->seeHtml($expectedValue); }); test('text for livewire', function () { $expectedValue = <<<'HTML' HTML; expect($this->blade($expectedValue))->seeHtml($expectedValue); }); Enum/AIModelTest.php000064400000001263152665634520010313 0ustar00label() ->toBeString(); })->with('entities'); test('all cases should have driver class', function ($model) { expect($model) ->driverClass() ->toBeString() ->and(class_exists($model->driverClass())) ->toBeTrue(); })->with('entities'); test('ai model enum relations', function () { expect(EntityEnum::cases()) ->each( fn ($model) => $model->engine() ->toBeInstanceOf(EngineEnum::class) ); }); Enum/AIEngineTest.php000064400000003705152665634520010463 0ustar00create(['gcs_file' => 'fake-gcs.json']); SettingTwo::factory()->create(['daily_voice_limit_enabled' => false]); } test('engine enum relations', function ($aiEngine) { expect($aiEngine) ->models() ->toBeArray() ->not ->toBeEmpty() ->each( fn ($models) => $models->toBeInstanceOf(EntityEnum::class) ); })->with('ai_engines'); test('rules', function () { expect($rules = EngineEnum::rules('plan.ai_models.', ['sometimes|numeric|min:0', 'sometimes|boolean'])) ->toBeArray() ->not ->toBeEmpty() ->sequence( fn ($rule) => $rule->toBeString()->toBe('sometimes|numeric|min:0'), fn ($rule) => $rule->toBeString()->toBe('sometimes|boolean') ) ->toHaveKeys([ 'plan.ai_models.openai.gpt-4o.credit', 'plan.ai_models.openai.gpt-4o.isUnlimited', ]); }); test('default models for ai engines table', function ($aiEngine) { expect($aiEngine) ->getDefaultModels(Setting::getCache(), SettingTwo::getCache()) ->toBeArray() ->not ->toBeEmpty() ->each( fn ($model) => $model->toBeInstanceOf(EntityEnum::class) ); })->with('ai_engines'); test('default models for ai engines enum', function () { $engines = EngineEnum::cases(); expect($engines) ->toBeArray() ->not ->toBeEmpty() ->each( fn ($engine) => $engine->getDefaultModels(Setting::getCache(), SettingTwo::getCache()) ->toBeArray() ->not ->toBeEmpty() ->each( fn ($model) => $model->toBeInstanceOf(EntityEnum::class) ) ); }); Rules/DomainRuleTest.php000064400000001567152665634520011275 0ustar00 $domain], ['domain' => new DomainRule]); $this->assertTrue($validator->passes()); })->with([ 'foo.com', 'foo.com.tr', 'foo.bar.com', 'foo.bar.com.tr', 'www.foo.com', 'foo123.com', 'foo-bar.com', 'foo-bar-123.com', 'www.foo-bar.com', '123.com', 'www.123.org', ]); test('failures', function ($domain) { $validator = Validator::make(['domain' => $domain], ['domain' => new DomainRule]); $this->assertFalse($validator->passes()); })->with([ 'bar', '-bar.com', '-.-.com', 'bar.-', 'foo.com/bar', 'foo.bar.com/bar.html', 'foo.a', 'foo.bar-', 'https://foo.com', 'https://foo.com-', 'https://www.foo.com', ]);