Initial commit
This commit is contained in:
65
tests/Feature/Forms/FormStatTest.php
Normal file
65
tests/Feature/Forms/FormStatTest.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
it('check formstat chart data', function () {
|
||||
$user = $this->actingAsUser();
|
||||
$workspace = $this->createUserWorkspace($user);
|
||||
$form = $this->createForm($user, $workspace, []);
|
||||
|
||||
$views = [];
|
||||
$submissions = [];
|
||||
// Create 10 views & submissions for past days
|
||||
for($i=1;$i<=10;$i++){
|
||||
$date = now()->subDays($i);
|
||||
$dateString = $date->format('d-m-Y');
|
||||
|
||||
$submission = $form->submissions()->create();
|
||||
$submission->created_at = $date;
|
||||
$submission->save();
|
||||
$view = $form->views()->create();
|
||||
$view->created_at = $date;
|
||||
$view->save();
|
||||
|
||||
$views[$dateString] = isset($views[$dateString]) ? ($views[$dateString] + 1) : 1;
|
||||
$submissions[$dateString] = isset($submissions[$dateString]) ? ($submissions[$dateString] + 1) : 1;
|
||||
}
|
||||
|
||||
// Run Command
|
||||
Artisan::call('forms:database-cleanup');
|
||||
|
||||
// Create 5 views & submissions
|
||||
for($i=1;$i<=5;$i++){
|
||||
$form->views()->create();
|
||||
$form->submissions()->create();
|
||||
|
||||
$dateString = now()->format('d-m-Y');
|
||||
$views[$dateString] = isset($views[$dateString]) ? ($views[$dateString] + 1) : 1;
|
||||
$submissions[$dateString] = isset($submissions[$dateString]) ? ($submissions[$dateString] + 1) : 1;
|
||||
}
|
||||
|
||||
// Now check chart data
|
||||
$this->getJson(route('open.workspaces.form.stats', [$workspace->id, $form->id]))
|
||||
->assertSuccessful()
|
||||
->assertJson(function (\Illuminate\Testing\Fluent\AssertableJson $json) use ($views, $submissions) {
|
||||
return $json->whereType('views', 'array')
|
||||
->whereType('submissions', 'array')
|
||||
->where('views', function($values) use ($views) {
|
||||
foreach($values as $date=>$count){
|
||||
if((isset($views[$date]) && $views[$date] != $count) || (!isset($views[$date]) && $count != 0)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
})
|
||||
->where('submissions', function($values) use ($submissions) {
|
||||
foreach($values as $date=>$count){
|
||||
if((isset($submissions[$date]) && $submissions[$date] != $count) || (!isset($submissions[$date]) && $count != 0)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
})
|
||||
->etc();
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user