You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
348 lines
12 KiB
348 lines
12 KiB
require "rails_helper" |
|
|
|
RSpec.describe Form::Lettings::Questions::La, type: :model do |
|
subject(:question) { described_class.new(question_id, question_definition, page) } |
|
|
|
let(:question_id) { nil } |
|
let(:question_definition) { nil } |
|
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } |
|
let(:page) { instance_double(Form::Page, subsection:) } |
|
let(:start_date) { Time.utc(2023, 4, 1) } |
|
|
|
it "has the correct answer_options" do |
|
expect(question.answer_options).to eq({ |
|
"" => "Select an option", |
|
"E06000001" => "Hartlepool", |
|
"E06000002" => "Middlesbrough", |
|
"E06000003" => "Redcar and Cleveland", |
|
"E06000004" => "Stockton-on-Tees", |
|
"E06000005" => "Darlington", |
|
"E06000006" => "Halton", |
|
"E06000007" => "Warrington", |
|
"E06000008" => "Blackburn with Darwen", |
|
"E06000009" => "Blackpool", |
|
"E06000010" => "Kingston upon Hull, City of", |
|
"E06000011" => "East Riding of Yorkshire", |
|
"E06000012" => "North East Lincolnshire", |
|
"E06000013" => "North Lincolnshire", |
|
"E06000014" => "York", |
|
"E06000015" => "Derby", |
|
"E06000016" => "Leicester", |
|
"E06000017" => "Rutland", |
|
"E06000018" => "Nottingham", |
|
"E06000019" => "Herefordshire, County of", |
|
"E06000020" => "Telford and Wrekin", |
|
"E06000021" => "Stoke-on-Trent", |
|
"E06000022" => "Bath and North East Somerset", |
|
"E06000023" => "Bristol, City of", |
|
"E06000024" => "North Somerset", |
|
"E06000025" => "South Gloucestershire", |
|
"E06000026" => "Plymouth", |
|
"E06000027" => "Torbay", |
|
"E06000030" => "Swindon", |
|
"E06000031" => "Peterborough", |
|
"E06000032" => "Luton", |
|
"E06000033" => "Southend-on-Sea", |
|
"E06000034" => "Thurrock", |
|
"E06000035" => "Medway", |
|
"E06000036" => "Bracknell Forest", |
|
"E06000037" => "West Berkshire", |
|
"E06000038" => "Reading", |
|
"E06000039" => "Slough", |
|
"E06000040" => "Windsor and Maidenhead", |
|
"E06000041" => "Wokingham", |
|
"E06000042" => "Milton Keynes", |
|
"E06000043" => "Brighton and Hove", |
|
"E06000044" => "Portsmouth", |
|
"E06000045" => "Southampton", |
|
"E06000046" => "Isle of Wight", |
|
"E06000047" => "County Durham", |
|
"E06000049" => "Cheshire East", |
|
"E06000050" => "Cheshire West and Chester", |
|
"E06000051" => "Shropshire", |
|
"E06000052" => "Cornwall", |
|
"E06000053" => "Isles of Scilly", |
|
"E06000054" => "Wiltshire", |
|
"E06000055" => "Bedford", |
|
"E06000056" => "Central Bedfordshire", |
|
"E06000057" => "Northumberland", |
|
"E06000058" => "Bournemouth, Christchurch and Poole", |
|
"E06000059" => "Dorset", |
|
"E06000060" => "Buckinghamshire", |
|
"E07000008" => "Cambridge", |
|
"E07000009" => "East Cambridgeshire", |
|
"E07000010" => "Fenland", |
|
"E07000011" => "Huntingdonshire", |
|
"E07000012" => "South Cambridgeshire", |
|
"E07000032" => "Amber Valley", |
|
"E07000033" => "Bolsover", |
|
"E07000034" => "Chesterfield", |
|
"E07000035" => "Derbyshire Dales", |
|
"E07000036" => "Erewash", |
|
"E07000037" => "High Peak", |
|
"E07000038" => "North East Derbyshire", |
|
"E07000039" => "South Derbyshire", |
|
"E07000040" => "East Devon", |
|
"E07000041" => "Exeter", |
|
"E07000042" => "Mid Devon", |
|
"E07000043" => "North Devon", |
|
"E07000044" => "South Hams", |
|
"E07000045" => "Teignbridge", |
|
"E07000046" => "Torridge", |
|
"E07000047" => "West Devon", |
|
"E07000061" => "Eastbourne", |
|
"E07000062" => "Hastings", |
|
"E07000063" => "Lewes", |
|
"E07000064" => "Rother", |
|
"E07000065" => "Wealden", |
|
"E07000066" => "Basildon", |
|
"E07000067" => "Braintree", |
|
"E07000068" => "Brentwood", |
|
"E07000069" => "Castle Point", |
|
"E07000070" => "Chelmsford", |
|
"E07000071" => "Colchester", |
|
"E07000072" => "Epping Forest", |
|
"E07000073" => "Harlow", |
|
"E07000074" => "Maldon", |
|
"E07000075" => "Rochford", |
|
"E07000076" => "Tendring", |
|
"E07000077" => "Uttlesford", |
|
"E07000078" => "Cheltenham", |
|
"E07000079" => "Cotswold", |
|
"E07000080" => "Forest of Dean", |
|
"E07000081" => "Gloucester", |
|
"E07000082" => "Stroud", |
|
"E07000083" => "Tewkesbury", |
|
"E07000084" => "Basingstoke and Deane", |
|
"E07000085" => "East Hampshire", |
|
"E07000086" => "Eastleigh", |
|
"E07000087" => "Fareham", |
|
"E07000088" => "Gosport", |
|
"E07000089" => "Hart", |
|
"E07000090" => "Havant", |
|
"E07000091" => "New Forest", |
|
"E07000092" => "Rushmoor", |
|
"E07000093" => "Test Valley", |
|
"E07000094" => "Winchester", |
|
"E07000095" => "Broxbourne", |
|
"E07000096" => "Dacorum", |
|
"E07000098" => "Hertsmere", |
|
"E07000099" => "North Hertfordshire", |
|
"E07000102" => "Three Rivers", |
|
"E07000103" => "Watford", |
|
"E07000105" => "Ashford", |
|
"E07000106" => "Canterbury", |
|
"E07000107" => "Dartford", |
|
"E07000108" => "Dover", |
|
"E07000109" => "Gravesham", |
|
"E07000110" => "Maidstone", |
|
"E07000111" => "Sevenoaks", |
|
"E07000112" => "Folkestone and Hythe", |
|
"E07000113" => "Swale", |
|
"E07000114" => "Thanet", |
|
"E07000115" => "Tonbridge and Malling", |
|
"E07000116" => "Tunbridge Wells", |
|
"E07000117" => "Burnley", |
|
"E07000118" => "Chorley", |
|
"E07000119" => "Fylde", |
|
"E07000120" => "Hyndburn", |
|
"E07000121" => "Lancaster", |
|
"E07000122" => "Pendle", |
|
"E07000123" => "Preston", |
|
"E07000124" => "Ribble Valley", |
|
"E07000125" => "Rossendale", |
|
"E07000126" => "South Ribble", |
|
"E07000127" => "West Lancashire", |
|
"E07000128" => "Wyre", |
|
"E07000129" => "Blaby", |
|
"E07000130" => "Charnwood", |
|
"E07000131" => "Harborough", |
|
"E07000132" => "Hinckley and Bosworth", |
|
"E07000133" => "Melton", |
|
"E07000134" => "North West Leicestershire", |
|
"E07000135" => "Oadby and Wigston", |
|
"E07000136" => "Boston", |
|
"E07000137" => "East Lindsey", |
|
"E07000138" => "Lincoln", |
|
"E07000139" => "North Kesteven", |
|
"E07000140" => "South Holland", |
|
"E07000141" => "South Kesteven", |
|
"E07000142" => "West Lindsey", |
|
"E07000143" => "Breckland", |
|
"E07000144" => "Broadland", |
|
"E07000145" => "Great Yarmouth", |
|
"E07000146" => "King’s Lynn and West Norfolk", |
|
"E07000147" => "North Norfolk", |
|
"E07000148" => "Norwich", |
|
"E07000149" => "South Norfolk", |
|
"E07000150" => "Corby", |
|
"E07000151" => "Daventry", |
|
"E07000152" => "East Northamptonshire", |
|
"E07000153" => "Kettering", |
|
"E07000154" => "Northampton", |
|
"E07000155" => "South Northamptonshire", |
|
"E07000156" => "Wellingborough", |
|
"E07000170" => "Ashfield", |
|
"E07000171" => "Bassetlaw", |
|
"E07000172" => "Broxtowe", |
|
"E07000173" => "Gedling", |
|
"E07000174" => "Mansfield", |
|
"E07000175" => "Newark and Sherwood", |
|
"E07000176" => "Rushcliffe", |
|
"E07000177" => "Cherwell", |
|
"E07000178" => "Oxford", |
|
"E07000179" => "South Oxfordshire", |
|
"E07000180" => "Vale of White Horse", |
|
"E07000181" => "West Oxfordshire", |
|
"E07000192" => "Cannock Chase", |
|
"E07000193" => "East Staffordshire", |
|
"E07000194" => "Lichfield", |
|
"E07000195" => "Newcastle-under-Lyme", |
|
"E07000196" => "South Staffordshire", |
|
"E07000197" => "Stafford", |
|
"E07000198" => "Staffordshire Moorlands", |
|
"E07000199" => "Tamworth", |
|
"E07000200" => "Babergh", |
|
"E07000202" => "Ipswich", |
|
"E07000203" => "Mid Suffolk", |
|
"E07000207" => "Elmbridge", |
|
"E07000208" => "Epsom and Ewell", |
|
"E07000209" => "Guildford", |
|
"E07000210" => "Mole Valley", |
|
"E07000211" => "Reigate and Banstead", |
|
"E07000212" => "Runnymede", |
|
"E07000213" => "Spelthorne", |
|
"E07000214" => "Surrey Heath", |
|
"E07000215" => "Tandridge", |
|
"E07000216" => "Waverley", |
|
"E07000217" => "Woking", |
|
"E07000218" => "North Warwickshire", |
|
"E07000219" => "Nuneaton and Bedworth", |
|
"E07000220" => "Rugby", |
|
"E07000221" => "Stratford-on-Avon", |
|
"E07000222" => "Warwick", |
|
"E07000223" => "Adur", |
|
"E07000224" => "Arun", |
|
"E07000225" => "Chichester", |
|
"E07000226" => "Crawley", |
|
"E07000227" => "Horsham", |
|
"E07000228" => "Mid Sussex", |
|
"E07000229" => "Worthing", |
|
"E07000234" => "Bromsgrove", |
|
"E07000235" => "Malvern Hills", |
|
"E07000236" => "Redditch", |
|
"E07000237" => "Worcester", |
|
"E07000238" => "Wychavon", |
|
"E07000239" => "Wyre Forest", |
|
"E07000240" => "St Albans", |
|
"E07000241" => "Welwyn Hatfield", |
|
"E07000242" => "East Hertfordshire", |
|
"E07000243" => "Stevenage", |
|
"E07000244" => "East Suffolk", |
|
"E07000245" => "West Suffolk", |
|
"E08000001" => "Bolton", |
|
"E08000002" => "Bury", |
|
"E08000003" => "Manchester", |
|
"E08000004" => "Oldham", |
|
"E08000005" => "Rochdale", |
|
"E08000006" => "Salford", |
|
"E08000007" => "Stockport", |
|
"E08000008" => "Tameside", |
|
"E08000009" => "Trafford", |
|
"E08000010" => "Wigan", |
|
"E08000011" => "Knowsley", |
|
"E08000012" => "Liverpool", |
|
"E08000013" => "St. Helens", |
|
"E08000014" => "Sefton", |
|
"E08000015" => "Wirral", |
|
"E08000016" => "Barnsley", |
|
"E08000017" => "Doncaster", |
|
"E08000018" => "Rotherham", |
|
"E08000019" => "Sheffield", |
|
"E08000021" => "Newcastle upon Tyne", |
|
"E08000022" => "North Tyneside", |
|
"E08000023" => "South Tyneside", |
|
"E08000024" => "Sunderland", |
|
"E08000025" => "Birmingham", |
|
"E08000026" => "Coventry", |
|
"E08000027" => "Dudley", |
|
"E08000028" => "Sandwell", |
|
"E08000029" => "Solihull", |
|
"E06000066" => "Somerset", |
|
"E08000030" => "Walsall", |
|
"E08000031" => "Wolverhampton", |
|
"E08000032" => "Bradford", |
|
"E08000033" => "Calderdale", |
|
"E08000034" => "Kirklees", |
|
"E08000035" => "Leeds", |
|
"E08000036" => "Wakefield", |
|
"E08000037" => "Gateshead", |
|
"E09000001" => "City of London", |
|
"E09000002" => "Barking and Dagenham", |
|
"E09000003" => "Barnet", |
|
"E09000004" => "Bexley", |
|
"E09000005" => "Brent", |
|
"E09000006" => "Bromley", |
|
"E09000007" => "Camden", |
|
"E09000008" => "Croydon", |
|
"E06000063" => "Cumberland", |
|
"E09000009" => "Ealing", |
|
"E09000010" => "Enfield", |
|
"E09000011" => "Greenwich", |
|
"E09000012" => "Hackney", |
|
"E09000013" => "Hammersmith and Fulham", |
|
"E09000014" => "Haringey", |
|
"E09000015" => "Harrow", |
|
"E09000016" => "Havering", |
|
"E09000017" => "Hillingdon", |
|
"E09000018" => "Hounslow", |
|
"E09000019" => "Islington", |
|
"E09000020" => "Kensington and Chelsea", |
|
"E09000021" => "Kingston upon Thames", |
|
"E09000022" => "Lambeth", |
|
"E09000023" => "Lewisham", |
|
"E09000024" => "Merton", |
|
"E09000025" => "Newham", |
|
"E09000026" => "Redbridge", |
|
"E09000027" => "Richmond upon Thames", |
|
"E09000028" => "Southwark", |
|
"E09000029" => "Sutton", |
|
"E09000030" => "Tower Hamlets", |
|
"E09000031" => "Waltham Forest", |
|
"E09000032" => "Wandsworth", |
|
"E09000033" => "Westminster", |
|
"E06000064" => "Westmorland and Furness", |
|
"E06000065" => "North Yorkshire", |
|
}) |
|
end |
|
|
|
describe "has the correct hidden_in_check_answers" do |
|
context "when saledate.year before 2023" do |
|
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2022-07-01")) } |
|
|
|
it "returns false" do |
|
expect(question.hidden_in_check_answers?(log)).to eq(false) |
|
end |
|
end |
|
|
|
context "when saledate.year >= 2023" do |
|
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2023-07-01")) } |
|
|
|
it "returns true" do |
|
expect(question.hidden_in_check_answers?(log)).to eq(false) |
|
end |
|
end |
|
|
|
context "when saledate.year >= 2023 and la inferred" do |
|
let(:log) { build(:lettings_log, startdate: Time.zone.parse("2023-07-01")) } |
|
|
|
before do |
|
allow(log).to receive(:is_la_inferred?).and_return(true) |
|
end |
|
|
|
it "returns true" do |
|
expect(question.hidden_in_check_answers?(log)).to eq(true) |
|
end |
|
end |
|
end |
|
end
|
|
|