Skip to content

Instantly share code, notes, and snippets.

@rubywai
rubywai / website.js
Last active October 18, 2025 11:06
flutter_web_server_with_nodejs
const express = require("express");
const path = require("path");
const app = express();
const port = process.env.PORT || 3000;
const buildPath = path.join(__dirname, "web");
// Serve static files first
app.use(express.static(buildPath));
class PdfViewer extends ConsumerStatefulWidget {
const PdfViewer({
super.key,
this.filePath,
this.fileUrl,
});
final String? filePath;
final String? fileUrl;
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'package:flutter_bloc_weather/features/search/ui/city_search_page.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
import 'package:integration_test/integration_test.dart';
class FakeSearchService implements SearchApiServices {
@override
import 'package:integration_test/integration_test_driver.dart';
Future<void> main() => integrationDriver();
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:get_it/get_it.dart';
import 'package:flutter_bloc_weather/features/search/ui/city_search_page.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import '../bloc/api_mock.mocks.dart';
import 'package:flutter_bloc_weather/features/search/bloc/city_search_cubit.dart';
import 'package:flutter_bloc_weather/features/search/bloc/city_search_state.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:get_it/get_it.dart';
import 'package:mockito/mockito.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'package:mockito/annotations.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
@GenerateMocks([SearchApiServices])
void main() {}
@rubywai
rubywai / mock_search_api.dart
Created June 7, 2025 05:06
mock search api service
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:dio/dio.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'mock.mocks.dart'; // Make sure this is generated from mock.dart
void main() {
group('SearchApiServices', () {
late MockDio mockDio;
import 'package:dio/dio.dart';
import 'package:mockito/annotations.dart';
@GenerateMocks([Dio])
void main() {}