|
530 | 530 | before { get merge_props_path, headers: headers }
|
531 | 531 |
|
532 | 532 | it 'returns non-optional props and meta on first load' do
|
533 |
| - expect(response.parsed_body['props']).to eq('merge' => 'merge prop', 'deep_merge' => { 'deep' => 'merge prop' }, |
534 |
| - 'regular' => 'regular prop') |
535 |
| - expect(response.parsed_body['mergeProps']).to match_array(%w[merge deferred_merge]) |
536 |
| - expect(response.parsed_body['deepMergeProps']).to match_array(%w[deep_merge deferred_deep_merge]) |
537 |
| - expect(response.parsed_body['deferredProps']).to eq('default' => %w[deferred_merge deferred_deep_merge deferred]) |
| 533 | + expect(response.parsed_body['props']).to eq( |
| 534 | + 'merge' => 'merge prop', 'merge_strategy' => [{ 'id' => 1 }], |
| 535 | + 'deep_merge' => { 'deep' => 'merge prop' }, 'deep_merge_strategy' => { 'deep' => [{ 'id' => 1 }] }, |
| 536 | + 'regular' => 'regular prop' |
| 537 | + ) |
| 538 | + expect(response.parsed_body['mergeProps']).to match_array(%w[merge merge_strategy deferred_merge deferred_merge_strategy]) |
| 539 | + expect(response.parsed_body['deepMergeProps']).to match_array(%w[deep_merge deep_merge_strategy deferred_deep_merge deferred_deep_merge_strategy]) |
| 540 | + expect(response.parsed_body['deferredProps']).to eq('default' => %w[deferred_merge deferred_merge_strategy deferred_deep_merge deferred_deep_merge_strategy deferred]) |
| 541 | + expect(response.parsed_body['mergeStrategies']).to match_array(%w[deep_merge_strategy.deep.id deferred_deep_merge_strategy.deep.id deferred_merge_strategy.id merge_strategy.id]) |
538 | 542 | end
|
539 | 543 |
|
540 | 544 | context 'with a partial reload' do
|
541 | 545 | let(:headers) do
|
542 | 546 | {
|
543 | 547 | 'X-Inertia' => true,
|
544 |
| - 'X-Inertia-Partial-Data' => 'deferred_merge,deferred_deep_merge', |
| 548 | + 'X-Inertia-Partial-Data' => 'deferred_merge,deferred_deep_merge,deferred_deep_merge_strategy,deferred_merge_strategy', |
545 | 549 | 'X-Inertia-Partial-Component' => 'TestComponent',
|
546 | 550 | }
|
547 | 551 | end
|
548 | 552 |
|
549 |
| - it 'returns listed and merge props' do |
| 553 | + it 'returns listed merge props' do |
550 | 554 | expect(response.parsed_body['props']).to eq(
|
551 | 555 | 'deferred_merge' => 'deferred and merge prop',
|
552 |
| - 'deferred_deep_merge' => { 'deep' => 'deferred and merge prop' } |
| 556 | + 'deferred_deep_merge' => { 'deep' => 'deferred and merge prop' }, |
| 557 | + 'deferred_deep_merge_strategy' => { 'deep' => [{ 'id' => 1 }] }, |
| 558 | + 'deferred_merge_strategy' => [{ 'id' => 1 }] |
553 | 559 | )
|
554 |
| - expect(response.parsed_body['mergeProps']).to match_array(%w[merge deferred_merge]) |
555 |
| - expect(response.parsed_body['deepMergeProps']).to match_array(%w[deep_merge deferred_deep_merge]) |
| 560 | + expect(response.parsed_body['mergeProps']).to match_array(%w[deferred_merge deferred_merge_strategy]) |
| 561 | + expect(response.parsed_body['deepMergeProps']).to match_array(%w[deferred_deep_merge deferred_deep_merge_strategy]) |
556 | 562 | expect(response.parsed_body['deferredProps']).to be_nil
|
| 563 | + expect(response.parsed_body['mergeStrategies']).to match_array(%w[deferred_deep_merge_strategy.deep.id deferred_merge_strategy.id]) |
557 | 564 | end
|
558 | 565 | end
|
559 | 566 |
|
|
567 | 574 | }
|
568 | 575 | end
|
569 | 576 |
|
570 |
| - it 'returns listed and merge props' do |
| 577 | + it 'returns listed props' do |
571 | 578 | expect(response.parsed_body['props']).to eq(
|
572 | 579 | 'deferred_merge' => 'deferred and merge prop',
|
573 | 580 | 'deferred_deep_merge' => { 'deep' => 'deferred and merge prop' }
|
574 | 581 | )
|
575 |
| - expect(response.parsed_body['mergeProps']).to match_array(%w[merge]) |
| 582 | + expect(response.parsed_body['mergeProps']).to be_nil |
| 583 | + expect(response.parsed_body['deferredProps']).to be_nil |
| 584 | + expect(response.parsed_body['mergeStrategies']).to be_nil |
| 585 | + end |
| 586 | + end |
| 587 | + |
| 588 | + context 'with an except header' do |
| 589 | + let(:headers) do |
| 590 | + { |
| 591 | + 'X-Inertia' => true, |
| 592 | + 'X-Inertia-Partial-Data' => 'deferred_merge,deferred_deep_merge,deep_merge_strategy', |
| 593 | + 'X-Inertia-Partial-Except' => 'deferred_merge', |
| 594 | + 'X-Inertia-Partial-Component' => 'TestComponent', |
| 595 | + } |
| 596 | + end |
| 597 | + |
| 598 | + it 'returns only the excepted props' do |
| 599 | + expect(response.parsed_body['props']).to eq( |
| 600 | + 'deferred_deep_merge' => { 'deep' => 'deferred and merge prop' }, |
| 601 | + 'deep_merge_strategy' => { 'deep' => [{ 'id' => 1 }] } |
| 602 | + ) |
| 603 | + expect(response.parsed_body['mergeProps']).to be_nil |
| 604 | + expect(response.parsed_body['deepMergeProps']).to match_array(%w[deferred_deep_merge deep_merge_strategy]) |
576 | 605 | expect(response.parsed_body['deferredProps']).to be_nil
|
| 606 | + expect(response.parsed_body['mergeStrategies']).to match_array(%w[deep_merge_strategy.deep.id]) |
577 | 607 | end
|
578 | 608 | end
|
579 | 609 | end
|
|
0 commit comments