hledger-forecast 1.5.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,32 +0,0 @@
1
- require_relative '../lib/hledger_forecast'
2
-
3
- RSpec.describe 'CSV and yml outputs' do
4
- it 'should return the same value when ran through hledger' do
5
- generated_journal = './test_output.journal'
6
- File.delete(generated_journal) if File.exist?(generated_journal)
7
-
8
- system("./bin/hledger-forecast generate -f example.csv -o ./test_output.journal -t ./spec/stubs/transactions_not_found.journal --force")
9
- csv_output = `hledger -f ./test_output.journal --forecast bal -b=2023-01 -e=2023-06`
10
-
11
- system("./bin/hledger-forecast generate -f example.yml -o ./test_output.journal -t ./spec/stubs/transactions_not_found.journal --force")
12
- yml_output = `hledger -f ./test_output.journal --forecast bal -b=2023-01 -e=2023-06`
13
-
14
- expect(csv_output).to eq(yml_output)
15
- end
16
-
17
- # it 'check that it can fail!' do
18
- # generated_journal = './test_output.journal'
19
- # File.delete(generated_journal) if File.exist?(generated_journal)
20
- #
21
- # system("./bin/hledger-forecast generate -f ./spec/stubs/csv_and_yml/forecast.csv -o ./test_output.journal --force > /dev/null 2>&1")
22
- #
23
- # ### CHANGE DATE!!!!!!!!!!!!!!!!
24
- # csv_output = `hledger -f ./test_output.journal --forecast bal -b=2023-01 -e=2023-03`
25
- # ### CHANGE DATE!!!!!!!!!!!!!!!!
26
- #
27
- # system("./bin/hledger-forecast generate -f ./spec/stubs/csv_and_yml/forecast.yml -o ./test_output.journal --force > /dev/null 2>&1")
28
- # yml_output = `hledger -f ./test_output.journal --forecast bal -b=2023-01 -e=2023-06`
29
- #
30
- # expect(csv_output).not_to eq(yml_output)
31
- # end
32
- end
@@ -1,110 +0,0 @@
1
- require_relative '../lib/hledger_forecast'
2
-
3
- input = <<~CSV
4
- type,frequency,account,from,to,description,category,amount,roll-up,summary_exclude,track
5
- monthly,,Assets:Bank,01/03/2023,,Salary,Income:Salary,-3500,,,
6
- monthly,,Assets:Bank,01/03/2023,01/01/2025,Mortgage,Expenses:Mortgage,2000,,,
7
- monthly,,Assets:Bank,01/03/2023,,Bills,Expenses:Bills,175,,,
8
- monthly,,Assets:Bank,01/03/2023,,Food,Expenses:Food,500,,,
9
- monthly,,Assets:Bank,01/03/2023,,New Kitchen,Expenses:House,=5000/24,,,
10
- monthly,,Assets:Bank,01/03/2023,=12,Holiday,Expenses:Holiday,125,,,
11
- monthly,,Assets:Bank,01/03/2023,01/01/2025,Rainy day fund,Assets:Savings,300,,,
12
- monthly,,Assets:Pension,01/01/2024,,Pension draw down,Income:Pension,-500,,,
13
- quarterly,,Assets:Bank,01/04/2023,,Quarterly bonus,Income:Bonus,-1000,,,
14
- half-yearly,,Assets:Bank,01/04/2023,,Top up holiday funds,Expenses:Holiday,500,,,
15
- yearly,,Assets:Bank,01/04/2023,,Annual bonus,Income:Bonus,-2000,,,
16
- once,,Assets:Bank,05/03/2023,,Refund for that damn laptop,Expenses:Shopping,-3000,,TRUE,TRUE
17
- custom,every 2 weeks,Assets:Bank,01/03/2023,,Hair and beauty,Expenses:Personal Care,80,26,,
18
- settings,currency,USD,,,,,,,,
19
- settings,show_symbol,TRUE,,,,,,,,
20
- settings,thousands_separator,TRUE,,,,,,,,
21
- CSV
22
-
23
- output = <<~YAML
24
- ---
25
- monthly:
26
- - account: Assets:Bank
27
- from: '2023-03-01'
28
- transactions:
29
- - amount: -3500.0
30
- category: Income:Salary
31
- description: Salary
32
- - amount: 2000.0
33
- category: Expenses:Mortgage
34
- description: Mortgage
35
- to: '2025-01-01'
36
- - amount: 175.0
37
- category: Expenses:Bills
38
- description: Bills
39
- - amount: 500.0
40
- category: Expenses:Food
41
- description: Food
42
- - amount: "=5000/24"
43
- category: Expenses:House
44
- description: New Kitchen
45
- - amount: 125.0
46
- category: Expenses:Holiday
47
- description: Holiday
48
- to: "=12"
49
- - amount: 300.0
50
- category: Assets:Savings
51
- description: Rainy day fund
52
- to: '2025-01-01'
53
- - account: Assets:Pension
54
- from: '2024-01-01'
55
- transactions:
56
- - amount: -500.0
57
- category: Income:Pension
58
- description: Pension draw down
59
- quarterly:
60
- - account: Assets:Bank
61
- from: '2023-04-01'
62
- transactions:
63
- - amount: -1000.0
64
- category: Income:Bonus
65
- description: Quarterly bonus
66
- half-yearly:
67
- - account: Assets:Bank
68
- from: '2023-04-01'
69
- transactions:
70
- - amount: 500.0
71
- category: Expenses:Holiday
72
- description: Top up holiday funds
73
- yearly:
74
- - account: Assets:Bank
75
- from: '2023-04-01'
76
- transactions:
77
- - amount: -2000.0
78
- category: Income:Bonus
79
- description: Annual bonus
80
- once:
81
- - account: Assets:Bank
82
- from: '2023-03-05'
83
- transactions:
84
- - amount: -3000.0
85
- category: Expenses:Shopping
86
- description: Refund for that damn laptop
87
- summary_exclude: true
88
- track: true
89
- custom:
90
- - account: Assets:Bank
91
- from: '2023-03-01'
92
- transactions:
93
- - amount: 80.0
94
- category: Expenses:Personal Care
95
- description: Hair and beauty
96
- frequency: every 2 weeks
97
- roll-up: 26.0
98
- settings:
99
- currency: USD
100
- show_symbol: true
101
- thousands_separator: true
102
- YAML
103
-
104
- RSpec.describe 'CSV parser' do
105
- it 'converts a CSV file to the YML output needed for the plugin' do
106
- computed_yaml = HledgerForecast::CSVParser.parse(input)
107
-
108
- expect(computed_yaml).to eq(output)
109
- end
110
- end
@@ -1,102 +0,0 @@
1
- require_relative '../lib/hledger_forecast'
2
-
3
- base_config = <<~YAML
4
- monthly:
5
- - account: "Assets:Bank"
6
- from: "2023-01-01"
7
- transactions:
8
- - amount: 300
9
- category: "Expenses:Groceries"
10
- description: Food shopping
11
- modifiers:
12
- - amount: 0.02
13
- description: "Y1 inflation"
14
- from: "2024-01-01"
15
- to: "2024-12-31"
16
- - amount: 0.05
17
- description: "Y2 inflation"
18
- from: "2025-01-01"
19
- to: "2025-12-31"
20
- - account: "Assets:Savings"
21
- from: "2023-05-01"
22
- transactions:
23
- - amount: 500
24
- category: "Assets:Bank"
25
- description: Savings
26
- modifiers:
27
- - amount: 0.1
28
- description: "Savings uplift"
29
- from: "2024-05-01"
30
- to: "2025-04-30"
31
-
32
- settings:
33
- currency: USD
34
- YAML
35
-
36
- base_journal = <<~JOURNAL
37
- ~ monthly from 2023-01-01 * Food shopping
38
- Expenses:Groceries $300.00; Food shopping
39
- Assets:Bank
40
-
41
- ~ monthly from 2023-05-01 * Savings
42
- Assets:Bank $500.00; Savings
43
- Assets:Savings
44
-
45
- = Expenses:Groceries date:2024-01-01..2024-12-31
46
- Expenses:Groceries *0.02 ; Food shopping - Y1 inflation
47
- Assets:Bank *-0.02
48
-
49
- = Expenses:Groceries date:2025-01-01..2025-12-31
50
- Expenses:Groceries *0.05 ; Food shopping - Y2 inflation
51
- Assets:Bank *-0.05
52
-
53
- = Assets:Bank date:2024-05-01..2025-04-30
54
- Assets:Bank *0.1 ; Savings - Savings uplift
55
- Assets:Savings *-0.1
56
-
57
- JOURNAL
58
-
59
- no_date_config = <<~YAML
60
- monthly:
61
- - account: "Assets:Bank"
62
- from: "2023-01-01"
63
- transactions:
64
- - amount: 500
65
- category: "Expenses:Groceries"
66
- description: Food shopping
67
- modifiers:
68
- - amount: 0.1
69
- description: "Inflation"
70
-
71
- settings:
72
- currency: USD
73
- YAML
74
-
75
- no_date_journal = <<~JOURNAL
76
- ~ monthly from 2023-01-01 * Food shopping
77
- Expenses:Groceries $500.00; Food shopping
78
- Assets:Bank
79
-
80
- = Expenses:Groceries date:2023-01-01
81
- Expenses:Groceries *0.1 ; Food shopping - Inflation
82
- Assets:Bank *-0.1
83
-
84
- JOURNAL
85
-
86
- RSpec.describe 'Applying modifiers to transactions -' do
87
- it 'Auto-postings should be created correctly' do
88
- generated = HledgerForecast::Generator
89
-
90
- generated_journal = generated.generate(base_config)
91
-
92
- expect(generated_journal).to eq(base_journal)
93
- end
94
-
95
- it 'Auto-postings should be created correctly if no dates are set' do
96
- generated = HledgerForecast::Generator
97
-
98
- generated_journal = generated.generate(no_date_config)
99
-
100
- expect(generated_journal).to eq(no_date_journal)
101
- end
102
- end
@@ -1,19 +0,0 @@
1
- monthly:
2
- - account: "Assets:Bank"
3
- from: "2023-03-01"
4
- transactions:
5
- - amount: 2000.55
6
- category: "Expenses:Mortgage"
7
- description: Mortgage
8
- - amount: 100
9
- category: "Expenses:Food"
10
- description: Food
11
- - account: "Assets:Savings"
12
- from: "2023-03-01"
13
- transactions:
14
- - amount: -1000
15
- category: "Assets:Bank"
16
- description: Savings
17
-
18
- settings:
19
- currency: GBP