|
235 | 235 | end
|
236 | 236 | end
|
237 | 237 | end
|
| 238 | + |
| 239 | + context 'When the result of `rake routes` contains Rake version' do |
| 240 | + context 'with older Rake versions' do |
| 241 | + let :rake_routes_result do |
| 242 | + <<~EOS.chomp |
| 243 | + (in /bad/line) |
| 244 | + good line |
| 245 | + EOS |
| 246 | + end |
| 247 | + |
| 248 | + context 'When the route file does not end with an empty line' do |
| 249 | + let :route_file_content do |
| 250 | + <<~EOS.chomp |
| 251 | + ActionController::Routing... |
| 252 | + foo |
| 253 | + EOS |
| 254 | + end |
| 255 | + |
| 256 | + let :expected_result do |
| 257 | + <<~EOS |
| 258 | + ActionController::Routing... |
| 259 | + foo |
| 260 | +
|
| 261 | + # == Route Map |
| 262 | + # |
| 263 | + # good line |
| 264 | + EOS |
| 265 | + end |
| 266 | + |
| 267 | + it 'annotates with an empty line' do |
| 268 | + expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
| 269 | + expect(mock_file).to receive(:puts).with(expected_result).once |
| 270 | + expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
| 271 | + |
| 272 | + AnnotateRoutes.do_annotations |
| 273 | + end |
| 274 | + end |
| 275 | + |
| 276 | + context 'When the route file ends with an empty line' do |
| 277 | + let :route_file_content do |
| 278 | + <<~EOS |
| 279 | + ActionController::Routing... |
| 280 | + foo |
| 281 | + EOS |
| 282 | + end |
| 283 | + |
| 284 | + let :expected_result do |
| 285 | + <<~EOS |
| 286 | + ActionController::Routing... |
| 287 | + foo |
| 288 | +
|
| 289 | + # == Route Map |
| 290 | + # |
| 291 | + # good line |
| 292 | + EOS |
| 293 | + end |
| 294 | + |
| 295 | + it 'annotates without an empty line' do |
| 296 | + expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
| 297 | + expect(mock_file).to receive(:puts).with(expected_result).once |
| 298 | + expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
| 299 | + |
| 300 | + AnnotateRoutes.do_annotations |
| 301 | + end |
| 302 | + end |
| 303 | + end |
| 304 | + |
| 305 | + context 'with newer Rake versions' do |
| 306 | + let :rake_routes_result do |
| 307 | + <<~EOS.chomp |
| 308 | + another good line |
| 309 | + good line |
| 310 | + EOS |
| 311 | + end |
| 312 | + |
| 313 | + context 'When the route file does not end with an empty line' do |
| 314 | + context 'When no option is passed' do |
| 315 | + let :route_file_content do |
| 316 | + <<~EOS.chomp |
| 317 | + ActionController::Routing... |
| 318 | + foo |
| 319 | + EOS |
| 320 | + end |
| 321 | + |
| 322 | + let :expected_result do |
| 323 | + <<~EOS |
| 324 | + ActionController::Routing... |
| 325 | + foo |
| 326 | +
|
| 327 | + # == Route Map |
| 328 | + # |
| 329 | + # another good line |
| 330 | + # good line |
| 331 | + EOS |
| 332 | + end |
| 333 | + |
| 334 | + it 'annotates with an empty line' do |
| 335 | + expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
| 336 | + expect(mock_file).to receive(:puts).with(expected_result).once |
| 337 | + expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
| 338 | + |
| 339 | + AnnotateRoutes.do_annotations |
| 340 | + end |
| 341 | + end |
| 342 | + end |
| 343 | + |
| 344 | + context 'When the route file ends with an empty line' do |
| 345 | + let :route_file_content do |
| 346 | + <<~EOS |
| 347 | + ActionController::Routing... |
| 348 | + foo |
| 349 | + EOS |
| 350 | + end |
| 351 | + |
| 352 | + let :expected_result do |
| 353 | + <<~EOS |
| 354 | + ActionController::Routing... |
| 355 | + foo |
| 356 | +
|
| 357 | + # == Route Map |
| 358 | + # |
| 359 | + # another good line |
| 360 | + # good line |
| 361 | + EOS |
| 362 | + end |
| 363 | + |
| 364 | + it 'annotates without an empty line' do |
| 365 | + expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
| 366 | + expect(mock_file).to receive(:puts).with(expected_result).once |
| 367 | + expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
| 368 | + |
| 369 | + AnnotateRoutes.do_annotations |
| 370 | + end |
| 371 | + end |
| 372 | + |
| 373 | + context 'When option "timestamp" is passed' do |
| 374 | + let :route_file_content do |
| 375 | + <<~EOS.chomp |
| 376 | + ActionController::Routing... |
| 377 | + foo |
| 378 | + EOS |
| 379 | + end |
| 380 | + |
| 381 | + let :expected_result do |
| 382 | + /ActionController::Routing...\nfoo\n\n# == Route Map \(Updated \d{4}-\d{2}-\d{2} \d{2}:\d{2}\)\n#\n# another good line\n# good line\n/ |
| 383 | + end |
| 384 | + |
| 385 | + it 'annotates with the timestamp and an empty line' do |
| 386 | + expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
| 387 | + expect(mock_file).to receive(:puts).with(expected_result).once |
| 388 | + expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
| 389 | + |
| 390 | + AnnotateRoutes.do_annotations timestamp: true |
| 391 | + end |
| 392 | + end |
| 393 | + end |
| 394 | + end |
238 | 395 | end
|
239 | 396 |
|
240 | 397 | context 'When the result of `rake routes` is blank' do
|
|
401 | 558 | end
|
402 | 559 | end
|
403 | 560 |
|
404 |
| - describe 'As for Rake versions' do |
405 |
| - before :each do |
406 |
| - expect(File).to receive(:exist?).with(ROUTE_FILE).and_return(true).once |
407 |
| - expect(File).to receive(:read).with(ROUTE_FILE).and_return(route_file_content).once |
408 |
| - |
409 |
| - expect(AnnotateRoutes).to receive(:`).with('rake routes').and_return(rake_routes_result).once |
410 |
| - end |
411 |
| - |
412 |
| - context 'with older Rake versions' do |
413 |
| - let :rake_routes_result do |
414 |
| - <<~EOS.chomp |
415 |
| - (in /bad/line) |
416 |
| - good line |
417 |
| - EOS |
418 |
| - end |
419 |
| - |
420 |
| - context 'When the route file does not end with an empty line' do |
421 |
| - let :route_file_content do |
422 |
| - <<~EOS.chomp |
423 |
| - ActionController::Routing... |
424 |
| - foo |
425 |
| - EOS |
426 |
| - end |
427 |
| - |
428 |
| - let :expected_result do |
429 |
| - <<~EOS |
430 |
| - ActionController::Routing... |
431 |
| - foo |
432 |
| -
|
433 |
| - # == Route Map |
434 |
| - # |
435 |
| - # good line |
436 |
| - EOS |
437 |
| - end |
438 |
| - |
439 |
| - it 'annotates with an empty line' do |
440 |
| - expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
441 |
| - expect(mock_file).to receive(:puts).with(expected_result).once |
442 |
| - expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
443 |
| - |
444 |
| - AnnotateRoutes.do_annotations |
445 |
| - end |
446 |
| - end |
447 |
| - |
448 |
| - context 'When the route file ends with an empty line' do |
449 |
| - let :route_file_content do |
450 |
| - <<~EOS |
451 |
| - ActionController::Routing... |
452 |
| - foo |
453 |
| - EOS |
454 |
| - end |
455 |
| - |
456 |
| - let :expected_result do |
457 |
| - <<~EOS |
458 |
| - ActionController::Routing... |
459 |
| - foo |
460 |
| -
|
461 |
| - # == Route Map |
462 |
| - # |
463 |
| - # good line |
464 |
| - EOS |
465 |
| - end |
466 |
| - |
467 |
| - it 'annotates without an empty line' do |
468 |
| - expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
469 |
| - expect(mock_file).to receive(:puts).with(expected_result).once |
470 |
| - expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
471 |
| - |
472 |
| - AnnotateRoutes.do_annotations |
473 |
| - end |
474 |
| - end |
475 |
| - end |
476 |
| - |
477 |
| - context 'with newer Rake versions' do |
478 |
| - let :rake_routes_result do |
479 |
| - <<~EOS.chomp |
480 |
| - another good line |
481 |
| - good line |
482 |
| - EOS |
483 |
| - end |
484 |
| - |
485 |
| - context 'When the route file does not end with an empty line' do |
486 |
| - context 'When no option is passed' do |
487 |
| - let :route_file_content do |
488 |
| - <<~EOS.chomp |
489 |
| - ActionController::Routing... |
490 |
| - foo |
491 |
| - EOS |
492 |
| - end |
493 |
| - |
494 |
| - let :expected_result do |
495 |
| - <<~EOS |
496 |
| - ActionController::Routing... |
497 |
| - foo |
498 |
| -
|
499 |
| - # == Route Map |
500 |
| - # |
501 |
| - # another good line |
502 |
| - # good line |
503 |
| - EOS |
504 |
| - end |
505 |
| - |
506 |
| - it 'annotates with an empty line' do |
507 |
| - expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
508 |
| - expect(mock_file).to receive(:puts).with(expected_result).once |
509 |
| - expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
510 |
| - |
511 |
| - AnnotateRoutes.do_annotations |
512 |
| - end |
513 |
| - end |
514 |
| - end |
515 |
| - |
516 |
| - context 'When the route file ends with an empty line' do |
517 |
| - let :route_file_content do |
518 |
| - <<~EOS |
519 |
| - ActionController::Routing... |
520 |
| - foo |
521 |
| - EOS |
522 |
| - end |
523 |
| - |
524 |
| - let :expected_result do |
525 |
| - <<~EOS |
526 |
| - ActionController::Routing... |
527 |
| - foo |
528 |
| -
|
529 |
| - # == Route Map |
530 |
| - # |
531 |
| - # another good line |
532 |
| - # good line |
533 |
| - EOS |
534 |
| - end |
535 |
| - |
536 |
| - it 'annotates without an empty line' do |
537 |
| - expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
538 |
| - expect(mock_file).to receive(:puts).with(expected_result).once |
539 |
| - expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
540 |
| - |
541 |
| - AnnotateRoutes.do_annotations |
542 |
| - end |
543 |
| - end |
544 |
| - |
545 |
| - context 'When option "timestamp" is passed' do |
546 |
| - let :route_file_content do |
547 |
| - <<~EOS.chomp |
548 |
| - ActionController::Routing... |
549 |
| - foo |
550 |
| - EOS |
551 |
| - end |
552 |
| - |
553 |
| - let :expected_result do |
554 |
| - /ActionController::Routing...\nfoo\n\n# == Route Map \(Updated \d{4}-\d{2}-\d{2} \d{2}:\d{2}\)\n#\n# another good line\n# good line\n/ |
555 |
| - end |
556 |
| - |
557 |
| - it 'annotates with the timestamp and an empty line' do |
558 |
| - expect(File).to receive(:open).with(ROUTE_FILE, 'wb').and_yield(mock_file).once |
559 |
| - expect(mock_file).to receive(:puts).with(expected_result).once |
560 |
| - expect(AnnotateRoutes).to receive(:puts).with(MESSAGE_ANNOTATED).once |
561 |
| - |
562 |
| - AnnotateRoutes.do_annotations timestamp: true |
563 |
| - end |
564 |
| - end |
565 |
| - end |
566 |
| - end |
567 |
| - |
568 | 561 | describe '.remove_annotations' do
|
569 | 562 | before :each do
|
570 | 563 | expect(File).to receive(:exist?).with(ROUTE_FILE).and_return(true).once
|
|
0 commit comments